窗口上HANDLE的来源
Source of a HANDLE on windows
我目前正在做一个项目(用C语言(,在这个项目中我使用了不同的win-HANDLE(互斥、信号量、线程…(。我的问题是:有没有一种方法可以检索HANDLE链接到的内核对象的类型?类似于:Get_HANDLE_source((还是Is_thread_HANDLE((?
谢谢你,
干杯!
如NtQueryObject所述。但最好使用一些OO概念:
struct HandleVtable
{
/* function pointer to appropriate implementation */
};
struct HandleWrapper
{
struct HandleVtable *vptr;
HANDLE handle;
};
对于每种类型的句柄,创建一个静态常量HandleVtable并用函数指针填充它。在创建HandleWrappers时,设置vptr,使其指向相应的vtable,并让所有函数调用都通过该vtable。为此,最好编写一个将指针指向HandleWrapper的包装函数。
现在您将在C.中拥有OOP。
相关文章:
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 问:如何使用C++中的按钮从窗口打开窗口
- SDL 窗口不会弹出
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 如何在cpp文件之间切换窗口?在Qt中
- QuadTree只在窗口的右上角绘制
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 如何在C++中找到active directory中禁用和锁定的窗口帐户
- 处理闪烁窗口事件
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- C++win32 API创建多个类似视口的窗口
- SFML RenderWindow打开窗口需要很长时间
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 获取 SFML 窗口的 HWND 和高可用性?
- 如何获取 GLFW 窗口 ID?
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 在窗口中将FILE*或HANDLE转换(ASSIGN)为IStream
- 窗口上HANDLE的来源
- 获取由库调用创建的窗口的Window Handle (HWND)