微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 如何转发声明HANDLE?的(Win32)

如何转发声明HANDLE?我不想在这个特定的头文件中包含所有的 windows.h.

解决方法

实际typedefs HANDLE的标题是winnt.h.不幸的是这是15K行 – 在这里,所以通过包括细长的windef.h来解决你的问题有点误导.

这是我系统中的相关部分(显然,细节可能会从修订版更改为修订版,但在实现级别不会更改,因为这会破坏现有的二进制文件):

//
// Handle to an Object
//

#ifdef STRICT
typedef void *HANDLE;
#if 0 && (_MSC_VER > 1000)
#define DECLARE_HANDLE(name) struct name##__; typedef struct name##__ *name
#else
#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name
#endif
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE *PHANDLE;

PS必须喜欢这个发货Microsoft头文件中的#if 0.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐