【发布时间】:2012-02-29 14:28:31
【问题描述】:
我正在尝试使用 GetProcAddress 获取 GetProcAddress 的地址(是的。自己调用它)。 当我从一个空的 exe 项目中执行此操作时,我得到了一个有效的地址(在 kernel32 的分配地址之间)。
当我从 dll 调用它时,我得到了无效的地址(不在分配的 kernel32 范围内)
有什么区别? 我在 64 位的 Windows 7 上运行。
项目编译为 32 位。 这是我正在运行的代码:
typedef FARPROC (WINAPI * GetProcAddressType)(HMODULE , LPCSTR );
HMODULE kernel32Hmodule = LoadLibraryW(L"c:\windows\system32\kernel32.dll");
GetProcAddressType abc = (GetProcAddressType)GetProcAddress(kernel32Hmodule, "GetProcAddress");
我也尝试过这样获取地址:void* a = GetProcAddress; 但是从 dll 运行时返回相同的无效地址...
请帮忙。
【问题讨论】:
标签: dll exe getprocaddress