3 winapi
我在想,如果我不得不关闭句柄例如如果我是叫GetModuleHandle这样
GetProcAddress(GetModuleHandle("modulename"), "nameoftheexportedfunction")
Run Code Online (Sandbox Code Playgroud)
什么是关闭手柄的正确方法?我需要做什么吗
HMODULE hModule = GetModuleHandle("modulename");
GetProcAddress(hModule, "nameoftheexportedfunction")
CloseHandle(hModule);
Run Code Online (Sandbox Code Playgroud)
或者,如果返回的值GetModuleHandle未存储到变量中,它会自动删除吗?
GetModuleHandle返回一个HMODULE(又名HINSTANCE- 看看HINSTANCE和HMODULE之间有什么区别?).此数据类型无法传递给CloseHandle.
该HMODULE可传递给FreeLibrary则但这不是必需的,因为相关GetModuleHandle不增加模块的引用计数.实际上,调用FreeLibrary可能会导致模块过早地未映射,从而导致严重的崩溃.
简而言之:GetModuleHandle返回一个只读值,不需要以任何方式处理掉.您问题中的第一行代码很好.
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |