forward declare typedef'd struct

Ste*_*eve 4 c++ forward-declaration

我无法弄清楚如何转发声明一个Windows结构.定义是

typedef struct _CONTEXT
{
 ....
} CONTEXT, *PCONTEXT
Run Code Online (Sandbox Code Playgroud)

我真的不想进入这个标题,因为它包含在任何地方.

我试过了

struct CONTEXT

struct _CONTEXT

没有运气(在winnt.h中使用actuall结构重新定义基本类型.

MSN*_*MSN 9

extern "C" { typedef struct _CONTEXT CONTEXT, *PCONTEXT; }
Run Code Online (Sandbox Code Playgroud)

你需要声明那_CONTEXT是一个struct.并声明它extern "C"匹配windows.h的外部链接(这是一个C头).

但是,您不需要为a提供定义typedef,但如果这样做,则所有定义必须匹配(One Definition Rule).

编辑:我也忘记了外部的"C".