题
我不能找出如何转发声明一个窗结构体。的定义是
typedef struct _CONTEXT
{
....
} CONTEXT, *PCONTEXT
我真的不想拉进这个标题,因为它可以随时随地包括在内。
我试图
结构CONTEXT
和
结构_CONTEXT
,没有运气(基本类型与WINNT.H中的实际工作的结构重新定义
解决方案
extern "C" { typedef struct _CONTEXT CONTEXT, *PCONTEXT; }
您需要声明_CONTEXT
是struct
。并宣布它作为extern "C"
匹配WINDOWS.H的外部连接(这是一个C头)。
不过,你不需要提供一个typedef
的定义,但如果这样做,所有定义必须的一位定义规则)。
编辑:我还忘记了外部的 “C”
其他提示
不是溶液而是替代方法:
// h-file
struct MyContext; // forward decl
void f(MyContext * pContext); // use pointer
//cpp-file
#include <windows.h>
struct MyContext {
CONTEXT cont;
};
void f(MyContext * pContext)
{
CONTEXT * p_win_cont = & pContext->cont;
// use p_win_cont
// ....
}
不隶属于 StackOverflow