前向声明 typedef 结构
我不知道如何转发声明 Windows 结构。定义是
typedef struct _CONTEXT
{
....
} CONTEXT, *PCONTEXT
我真的不想拉入这个标头,因为它被包含在任何地方。
我尝试过
struct CONTEXT
和
struct _CONTEXT
但没有成功(使用 winnt.h 中的实际结构重新定义基本类型。
I can't figure out how to forward declare a windows struct. The definition is
typedef struct _CONTEXT
{
....
} CONTEXT, *PCONTEXT
I really don't want to pull into this header, as it gets included everywhere.
I've tried
struct CONTEXT
and
struct _CONTEXT
with no luck (redefinition of basic types with the actuall struct in winnt.h.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要声明
_CONTEXT
是一个struct
。并将其声明为extern "C"
以匹配 windows.h(这是一个 C 头文件)的外部链接。但是,您不需要提供
typedef
的定义,但如果您这样做,所有定义都必须匹配(一个定义规则)。编辑:我还忘记了外部“C”。
You need to declare that
_CONTEXT
is astruct
. And declare it asextern "C"
to match the external linkage of windows.h (which is a C header).However, you don't need to provide a definition for a
typedef
, but if you do, all definitions must match (the One Definition Rule).EDIT: I also forgot the extern "C".
不是解决方案,而是解决方法:
Not solution but workaround: