Ошибка времени выполнения (загрузка DLL) с приложениями WIN32 в системе X64, в то же время компиляция 0K

StackOverflow https://stackoverflow.com/questions/5372565

Вопрос

Первоначально я разработал приложение Win32 на Win7 32Bits, с VC9.0. Недавно я обновился до Win7 64 бит и попытался построить+выполнить предыдущее приложение.

Здание работает нормально (приложение WIN32), но во время выполнения я получаю ошибку «[...] вышла с кодом -1073741701 (0xc000007b)».

Я предполагаю, что это результаты загрузки 64Bits версии [предназначенного] 32Bits DLL.

Конкретные зависимости для этого проекта: sdl.lib sdlmain.lib sdl_ttf.lib opengl32.lib glu32.lib wininet.lib

SDL и SDL_TTF находятся только в версии 32BITS. Я предполагаю, что Visual Studio достаточно умна, чтобы получить файлы OpenGL и Glu LIB в syswow64, когда я прошу приложение Win32.

Может быть, из -за Wininet? Или я ошибся?

Спасибо,

Это было полезно?

Решение

Похоже, вы загружаете 64-битный DLL в 32-разрядный процесс или наоборот. Вот как я бы пошел в отслеживание оскорбительного DLL.

Первый шаг - запустить Dilmbin.exe (используйте командную строку VS, чтобы получить ее на пути) на исполняемом файле, чтобы убедиться, что архитектура - это то, что вы ожидаете: dumpbin.exe /headers foo.exe. Анкет В выходе заголовка файла вы должны увидеть значение «машины» «x86» или «x64». В необязательном выводе заголовка вы должны увидеть магию «PE32» (для x86) или «PE32+» (для x64).

Следующим шагом является запуск соответствующего ходунка зависимости, доступный на www.dependencywalker.com, в зависимости от архитектуры (x86 или x64) исполняемого файла. Этот инструмент должен сказать вам, если он находится зависимость от путей поиска, которые не имеют одной и той же архитектуры.

Если «Зависимость» Уокер находит проблему, то исправление будет тогда заменить библиотеку оскорбления на библиотеку той же архитектуры или убедиться, что правильная библиотека находится перед неправильной библиотекой на основе пути поиска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top