我正在尝试使用 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 运行时它返回相同的无效地址...
请帮忙。