Мы пытаемся загрузить DLL-библиотеку из 64-разрядной библиотеки DLL с использованием функции LoadLibraryA. Он возвращает 126 error - mod не найден. Мы уверены, что путь к файлу dll, заданный функции, верен.Ошибка загрузки DLL с использованием LoadLibraryA
Мы попробовали dummy dll для тестирования, и он сработал, он загружен.
Мы также попытались добавить dll (которая является зависимостью первой DLL, которую мы хотим загрузить) в dummy dll. Он также работал. Таким образом, проблема не связана с DLL зависимостей, а с исходной dll, которую мы хотим загрузить в первую очередь.
Мы также попытались преобразовать dl в 64-разрядный, и попробовали это, все еще ничего хорошего.
Мы также проверили зависимости с помощью Walker Dependency. Все в порядке.
Операционная система, которую мы используем, - Windows 8, 64 бит. Если это имеет значение .. Есть ли у кого-нибудь идеи об этом поблеме?
EDIT: Мы также попробовали этот код:
hModule = LoadLibraryW(L"C:\\temp\\dllToLoad.dll");
и получил этот код ошибки:
"First-chance exception at 0x00000000 in C_Test_TSMPPKCS11.exe: 0xC0000005: Access violation at location 0x0000000000000000."
EDIT 2: код, который мы использовали в первую очередь это:
hModule = LoadLibraryA((char*)aDLLFile);
EDIT 3: Мы используем полный путь для загрузки dll. Для того чтобы проверить это, мы пытались этот код:
FILE *fp;
int size = 0;
fp=fopen("C:\\temp\\dllToLoad.dll", "r");
size = fgetc(fp);
printf("size:%d\n",size);
fclose(fp);
Там не было никаких проблем, мы получили размер файла, который 77.
Если вы не получили здесь рабочего ответа, найдите «загрузочные снимки», которые являются механизмом для отладки этой проблемы. – RichieHindle
(Незначительная точка: 'fgetc' получает байт из файла, он не получает размер. Не то, что это что-то меняет.) – RichieHindle