Можем ли мы вызывать функции DLL, скомпилированной для 64-битной системы, используя приложение, скомпилированное для 32-битной системы? - PullRequest
0 голосов
/ 09 февраля 2011

Можем ли мы вызывать функции библиотеки DLL, скомпилированной для 64-битной системы, с использованием приложения, скомпилированного для 32-битной системы?

Я использую 64-битную систему Windows 2008.Но приложение по-прежнему компилируется с использованием 32-разрядного.

Код включает функции MFC и Windows SDK.

Ответы [ 2 ]

4 голосов
/ 09 февраля 2011

Нет. 32-разрядное приложение не может загрузить 64-разрядный модуль в свое пространство процесса (и наоборот).

Помните, что 32-разрядные процессы поддерживаются только в 64-разрядных версиях Windows в выделенной подсистеме Windows-on-Windows (WOW64). Это в лучшем случае затрудняет взаимодействие. Запись в блоге Рэймонда Чена на эту тему весьма поучительна, если вам интересны технические детали.

Вам нужно будет либо перекомпилировать один или другой, либо загрузить его в отдельный процесс и использовать межпроцессное взаимодействие для координации между ними.

1 голос
/ 09 февраля 2011

Это невозможно.Двоичный код, включенный в dll, отличается, и указатели - 64-битные

...