GetModuleHandle如何在Visual c + +中工作

Ste*_*das 3 c++ winapi visual-c++

我是c ++的新手,即使我知道文件存在,这段代码总是返回NULL:

HMODULE hModule = GetModuleHandle(TEXT("C:\\Users\\Steve\\Desktop\\stub.exe"));
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果我将stub.exe复制到C:\ Windows\system32,它会找到包含以下代码的模块:

HMODULE hModule = GetModuleHandle(TEXT("stub.exe"));
Run Code Online (Sandbox Code Playgroud)

我错过了一些非常基本的东西吗?

MSa*_*ers 7

你只能GetModuleHandle(L"C:\\Users\\Steve\\Desktop\\stub.exe");在跑步时打电话C:\Users\Steve\Desktop\stub.exe.

但一般情况下,您不需要调用GetModuleHandle您的EXE名称.由于每个进程只有一个EXE,因此您只需调用GetModuleHandle(0).

  • EXE可以导出函数并与DLL一样链接.这不是常见的情况,但仍有可能. (2认同)