перенаправление прокси user32.dll для локальной программы ИЛИ проблема с связыванием user32.dll - PullRequest
1 голос
/ 08 декабря 2011

Я создал прокси для user32.dll, который заменяет lpCaption текстом «MessageBoxA» и «MessageBoxW» для функций MessageBoxA и MessageBoxW, как вы, возможно, уже догадались. Я использовал wrappit.cpp из здесь для генерации исходного кода, и после внесения изменений скомпилировал его:
cl user32.cpp /link /dll /def:user32.def /out:user32.dll
Он скомпилирован нормально, однако небольшая тестовая программа MessageBox, которую я написал, не отображает измененную подпись, как если бы программа использовала редирект dll. Тестовая программа отображает MessageBox через функцию MessageBoxA. Я попытался скомпилировать тестовую программу с помощью:
cl testWin.cpp и: cl /MD testWin.cpp Я предполагаю, что я не могу ссылаться на user32.dll, и если это так, то мой вопрос "есть ли проблема с тем, как я связываю тестовую программу?" Если я правильно соединяюсь, в чем я не уверен, то мой вопрос «почему не происходит перенаправление dll?» В статье MSDN о перенаправлении DLL / COM в Windows, которую я прочитал, предлагается создать пустой файл с именем «testWin.exe.local» в том же каталоге, но, похоже, это не повлияет на результат.

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

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