出于某种原因,当我在全局范围内声明我的控件时,我的应用程序将无法编译。当我声明变量内联时,一切都很好。以下内容无法编译:
//Global
HWND hEdit;
...
case WM_CREATE:
{
// Create an edit box
hEdit= CreateWindowEx(WS_EX_CLIENTEDGE,
"EDIT",
"",
WS_CHILD|WS_VISIBLE|
ES_MULTILINE|ES_AUTOVSCROLL|ES_AUTOHSCROLL,
50,
100,
200,
100,
hwnd,
(HMENU)IDC_MAIN_EDIT,
GetModuleHandle(NULL),
NULL);
HGDIOBJ hfDefault = GetStockObject(DEFAULT_GUI_FONT);
...
}
break;
以下内容无法编译。错误是:
'HGDIOBJ':非法使用此类型作为表达式
但是,如果我在我的交换机内定义hEdit
内联,则此错误会消失。
所以这将编译:
case WM_CREATE:
{
// Create an edit box
HWND hEdit= CreateWindowEx(WS_EX_CLIENTEDGE,
"EDIT",
"",
WS_CHILD|WS_VISIBLE|
ES_MULTILINE|ES_AUTOVSCROLL|ES_AUTOHSCROLL,
50,
100,
200,
100,
hwnd,
(HMENU)IDC_MAIN_EDIT,
GetModuleHandle(NULL),
NULL);
HGDIOBJ hfDefault = GetStockObject(DEFAULT_GUI_FONT);
...
} break;
我必须忽略一些简单但我找不到的东西。有人能告诉我我在忽视什么吗?
由于
答案 0 :(得分:1)
Argg ...我用.c而不是.cpp
命名了这个文件不确定为什么他们会导致我看到的问题,但我注意到我也收到了“未声明的标识符”错误。重命名文件就可以了。我想我会称之为晚上:)
感谢您的评论和回复。
答案 1 :(得分:0)
你的全局变量是否在#include之前声明了?