如果句柄被创建为函数参数,它会在函数结束时自行关闭吗?
例如:
int readMem(HANDLE processHandle, int address)
{
int memValue = 0;
bool success = ReadProcessMemory(processHandle, (LPVOID)address, &memValue, sizeToReadBytes, NULL);
if (!success)
std::wcout << "Memory read failed on address: " << std::hex << address << "\n";
return memValue;
}
我是否需要在 return 语句之前显式关闭它,还是最好尽可能将它们作为引用传递?
或者我只是误解了所有的句柄?我对 winapi 很陌生。
最佳答案
HANDLE
只是一个 typedef
到 void *
。
Microsoft 明确规定,当您使用完句柄后,请务必使用 CloseHandle
将其关闭。
您的 readMem
函数没有创建句柄,因此在那里关闭它没有意义。
关于c++ - 在作为函数参数的句柄上调用 CloseHandle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35817833/