AppInit_DLLs в Windows 7 (64-разрядная версия) - PullRequest
2 голосов
/ 29 июня 2011

Я написал DLL, которая поможет мне отладить мое приложение. Я использую 64-разрядную версию Windows7. Вот что я наблюдаю:

(1) Если я задаю HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ AppInit_DLLs и запускаю 32-битную версию моего приложения, DLL загружается и все в порядке. (2) Если я задаю HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ AppInit_DLLs и запускаю 64-битную версию моего приложения, приложение запускается, но оно сразу падает.

Ребята, знаете ли вы какое-нибудь решение этой проблемы?

Ответы [ 2 ]

2 голосов
/ 01 марта 2015

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs - это раздел реестра для архитектуры ЦП по умолчанию, в вашем случае 64-разрядный.

Чтобы подключить 32-разрядный процесс в 64-разрядной ОС, используйте: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

2 голосов
/ 29 июня 2011

AppInit_DLLs могут работать для 64-битных приложений на Win7, но вы, вероятно, не соответствуете требованиям.

a) Вам, вероятно, нужно знать это: http://msdn.microsoft.com/en-us/library/dd744762(v=VS.85).aspx.

b) Если это ваше приложение и ваша DLL, пропустите весь механизм AppInit_DLLs, который беспорядочный и бесполезный, ипросто сделайте свой собственный LoadLibrary в нужное время.

Martyn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...