小编Rob*_*non的帖子

GetProcAddress 为所有函数返回 0

首先,是的,我已经搜索了一段时间,但找不到与我的案例相关的任何答案。基本上,我试图在 Windows DLL (dnsapi.dll) 中获取函数的地址,而 GetProcAddress 返回 0。经过一段时间的挠头,我什至继续创建一个程序,该程序仅在 user32 中使用 MessageBox 的 GetProcAddress。 dll。结果一样。这是我制作的第二个程序的代码,它仍然不起作用:

#include <stdio.h>
#include <Windows.h>

int main() {
    HINSTANCE hLib = LoadLibrary(TEXT("user32.dll"));
    DWORD MsgBoxAddr = (DWORD)GetProcAddress(hLib, "MessageBox");

    printf("%ld", MsgBoxAddr);
    getchar();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,GetLastError 返回 127,这似乎是 GetProcAddress 不起作用时返回的最常见错误,但我不知道出了什么问题,我尝试了许多函数和 DLL,而不仅仅是这对夫妇。

谢谢。:)

编辑:链接的文章解决了我的问题,我尝试过的所有功能都有 unicode 和 anis 版本(w 和 a)。使用完整的 API 名称解决了这些问题。感谢您链接该问题。

谢谢你。

c winapi getprocaddress

5
推荐指数
1
解决办法
1749
查看次数

标签 统计

c ×1

getprocaddress ×1

winapi ×1