我不能找出如何转发声明一个窗结构体。的定义是

typedef struct _CONTEXT
{
 ....
} CONTEXT, *PCONTEXT

我真的不想拉进这个标题,因为它可以随时随地包括在内。

我试图

结构CONTEXT

结构_CONTEXT

,没有运气(基本类型与WINNT.H中的实际工作的结构重新定义

有帮助吗?

解决方案

extern "C" { typedef struct _CONTEXT CONTEXT, *PCONTEXT; }

您需要声明_CONTEXTstruct。并宣布它作为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
   // ....
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top