Загрузите библиотеку DLL на 32 бита в приложении на 64 бита

Есть ли способ загрузить библиотеку DLL на 32 бита (что-то с тем же использованием как LoadLibrary), я хотел бы использовать ту функцию наряду с GetProcAddress.

Я смотрел на, НИЧЕГО СЕБЕ, но это, кажется, не предлагает функциональности. Функциональность должна существовать, так как инструменты как DependencyWalker в состоянии считать символы 32 битов dll даже при том, что ее 64 бита.

спасибо

38
задан adk 15 February 2010 в 09:48
поделиться

2 ответа

Извините, но вы можете загрузить только 32-битную DLL в 64-битный процесс, когда вы загружаете dll как файл данных. Вы не можете выполнить код. http://support.microsoft.com/kb/282423

Microsoft рекомендует использовать межпроцессный COM для использования 32-разрядного кода с 64-разрядным приложением. Вот статья, объясняющая процесс http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/ Это не весело.

51
ответ дан 27 November 2019 в 03:46
поделиться

Есть разница между чтением 32-битного исполняемого файла и выполнением кода в 32-битном исполняемом файле. Я не верю, что Windows предлагает какие-либо функции для этого.

Единственный способ, которым вы, вероятно, сможете это сделать, - это создать 32-битный процесс, который загружает dll, а затем осуществляет межпроцессное взаимодействие для передачи результатов между двумя процессами.

2
ответ дан 27 November 2019 в 03:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: