转发声明HINSTANCE和朋友

有没有办法从WinAPI转发声明
HINSTANCE
类型而不包括完整(和大)
windows.h
标题? 例如,如果我有一个拥有
HINSTANCE mInstance
的班级
RenderWindow
,我必须在
RenderWindow.h
中包含
windows.h
。因此,所有需要
RenderWindow
的东西也必须包括
windows.h
。 我尝试包括
windef.h
但这似乎需要一些来自
windows.h
的东西。 :-(如果我不能向前宣布它,是否至少有一种便携式方式在
RenderWindow
而不是
HINSTANCE
中使用
long mInstance
?     
已邀请:
HINSTANCE在WinDef.h中声明为typedef HINSTANCE __ * HINSTANCE; 您可以在标题中写下:
#ifndef _WINDEF_
class HINSTANCE__; // Forward or never
typedef HINSTANCE__* HINSTANCE;
#endif
当不包含WinDef.h时,您将获得引用HINSTANCE的编译错误。     
您可以声明它为void *并抛弃错误。这接近于一场永无止境的战斗,但迟早会被绊倒。使用预编译的头文件,因此您不必关心windows.h的大小 stdafx.h中:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
    
  例如,如果我有一个拥有
HINSTANCE mInstance
的班级
RenderWindow
,我必须在
RenderWindow.h
中包含
windows.h
。因此,所有需要
RenderWindow
的东西也必须包括
windows.h
。 你看过Pimpl的成语吗?这允许您隐藏私人成员。副作用是您不必在类的标题中包含其标题。     

要回复问题请先登录注册