Перенаправление WOW64 и LoadLibrary - PullRequest
0 голосов
/ 18 января 2011

Я пытаюсь создать 32-битную программу, которая может корректно работать в 64-битной Windows; то есть, если ему нужно открыть текстовый файл для пользователя, файл должен быть перенаправлен с , а не с C:\Program Files на C:\Program Files (x86). Однако, если я просто вызываю Wow64DisableWow64FsRedirection, то моя программа вообще не загружается, потому что некоторые системные библиотеки вызывают LoadLibrary, когда загружаются части графического интерфейса, что пытается загрузить 64-битную версию системной DLL в мою программу .

Как мне решить эту проблему?


Edit:

См. Проблему на скриншоте ниже:


Редактировать 2:

Вот еще один вопрос, который решит проблему: есть ли способ отключить перенаправление WOW64 для произвольного потока в вашем процессе или для вашего процесса в целом?

1 Ответ

3 голосов
/ 20 января 2011

Легко, позвоните Wow64DisableWow64FsRedirection непосредственно перед тем, как позвонить CreateFile, а затем позвоните Wow64RevertWow64FsRedirection, как только это будет сделано.

...