c++ - win32 hInstances 是唯一的吗?

标签 c++ win32-process hinstance

我正在编写一个缓存处理程序,它需要应用程序的每个实例都有一个唯一的 ID 号,这样当有人在两个实例中打开两个项目时,缓存就不会混淆。根据this thread ,似乎传递给 WinMainHINSTANCE 是模块的句柄,它可能只是 exe,不一定是唯一的进程 ID。

线程似乎在说关于要运行的模块/进程的信息只被带入内存一次,HINSTANCE 是它的句柄。这是否意味着 HINSTANCE 不能用作进程的唯一标识符,因为它们都指向同一个模块?还是我弄错了?

最佳答案

HINSTANCE 大部分已过时,是 16 位时代的遗留物。它对您的应用程序的所有实例都具有相同的值。

对于唯一的进程 ID,请使用 GetCurrentProcessId

关于c++ - win32 hInstances 是唯一的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54015119/

相关文章:

c++ - 检测 C++/Win32 中的进程崩溃

c# - 检测 PowerModeChange 并等待执行

c - WinMain 中 hPrevInstance 的作用是什么

c++ - 转发声明 HINSTANCE 和 friend

c++ - 模板化类中的关系运算符重载 (C++)

c++ - system() 和 popen() 不可用

c++ - 将传统 Windows 桌面应用程序提交到 Windows 应用商店

c++ - 如何在 C 或 C++ 中轻松解决这个问题?