error C2065: “GWL_HINSTANCE”: 未声明的标识符

发布于 2020-05-06  61 次阅读


问题描述:

在编译一个dll的时候,下面的代码

(HMODULE)GetWindowLong(hwndParent, GWL_HINSTANCE))

用32编译可以正常编译,但是64编译的时候提示错误:

error C2065: “GWL_HINSTANCE”: 未声明的标识符


解决方法:

我们打开VC头文件WinUser.h,会知道以下定义

看后我们就会明白,如果是64编译的话,就会执行以下代码:

#undef GWL_HINSTANCE

所以就可以明白为啥提示GWL_HINSTANCE未声明了,但是下面还有以下定义

#define GWLP_HINSTANCE      (-6)

所以我们在代码中把GWL_HINSTANCE替换成GWLP_HINSTANCE就好了,替换后不影响32位编译的.


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。