[programs/winetest] Extend PATH if we have dll's that only come with .NET (Try2)
Nicolas Le Cam
niko.lecam at gmail.com
Wed Feb 25 05:05:26 CST 2009
>>> +
>>> + /* We have a dll that cannot be found through
>>> LoadLibraryExA.
>>> This
>>> + * is the case for .NET provided dll's. We will add the
>>> directory
>>> + * where the dll resides to the PATH variable when dealing
>>> with
>>> + * the tests for this dll.
>>> + */
>>> + GetModuleFileNameA(dll, dllpath, MAX_PATH);
>>> + *strrchr(dllpath, '\\') = '\0';
>>> + wine_tests[nr_of_files].maindllpath =
>>> xmalloc(strlen(dllpath) +
>>> 1);
>>> + strcpy(wine_tests[nr_of_files].maindllpath, dllpath);
>>> + }
>>
>> This won't work if test needs more than one dll found through
>> LoadLibraryShim
>>
>
> Not sure what you mean as LoadLibraryShim will only return 1 dll.
I mean if the test imports more than one dll that can only be found by
LoadLibraryShim it will replace the first PATH you retrieved by the
second one, and a message will be displayed for the first d. In my
test I did something like that :
else
{
char dllpath[MAX_PATH];
/* We have a dll that cannot be found through LoadLibraryExA. This
* is the case for .NET provided dll's. We will add the directory
* where the dll resides to the PATH variable when dealing with
* the tests for this dll.
*/
GetModuleFileNameA(dll, dllpath, MAX_PATH);
*strrchr(dllpath, '\\') = '\0';
if (!wine_tests[nr_of_files].maindllpath)
wine_tests[nr_of_files].maindllpath = strmake ( NULL,
";%s", dllpath);
else
{
char *newpath = wine_tests[nr_of_files].maindllpath;
wine_tests[nr_of_files].maindllpath = strmake ( NULL,
"%s;%s", newpath, dllpath);
free(newpath);
}
}
and wine_tests[nr_of_files].maindllpath = NULL; wasn't set in extract_test_proc
More information about the wine-devel
mailing list