c++ - 初始化全局变量的问题

标签 c++ windows window

我最近开始使用本教程学习 Win32 API:

http://www.winprog.org/tutorial/ (尽管我使用的是 C++,而不是教程中的 C) 我目前正在试验“编辑框”功能,我试图将编辑框中的文本与另一行字符进行比较。 代码:

#define IDC_MAIN_EDIT   101

代码:

case WM_CREATE:
{
    HFONT hfDefault;
    HWND hEdit;

    hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", 
        WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL, 
        0, 0, 100, 100, hwnd, (HMENU)IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);
    if(hEdit == NULL)
        MessageBox(hwnd, "Could not create edit box.", "Error", MB_OK | MB_ICONERROR);

    hfDefault = GetStockObject(DEFAULT_GUI_FONT);
    SendMessage(hEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0));
}
break;
case WM_SIZE:
{
    HWND hEdit;
    RECT rcClient;

    GetClientRect(hwnd, &rcClient);

    hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT);
    SetWindowPos(hEdit, NULL, 0, 0, rcClient.right, rcClient.bottom, SWP_NOZORDER);
}
break;

代码:

bool comparison (HWND hEdit) {
LPWSTR pszText;
DWORD dwTextLength;
DWORD dwBufferSize;

dwTextLength = GetWindowTextLength(hEdit);
dwBufferSize = dwTextLength + 1;

GetWindowText(hEdit, pszText, dwBufferSize);

if(pszText == TEXT("3")) {
    return true;
}
else {
    return false;
}
}

当我调用“比较”函数时出现的问题是 pszText 和 hEdit 没有初始化。我明白为什么 pszText 不是,我尝试使用 new/delete 来修复它,但我没有让它工作。我对 hEdit 一无所知。我是不是用错了 GetWindowText 函数? 警告 代码:

警告 C4700:使用了未初始化的局部变量“pszText” 警告 C4700:使用了未初始化的局部变量“hEdit”

Run-Time Check Failure(在我使用函数时出现,这只是其中之一) 代码:

运行时检查失败 #3 - 变量 'hEdit' 未经初始化就被使用

最佳答案

pszText 是指针类型。所以你需要在使用它之前为其分配内存。

这样做:

wchar_t *pszText = new wchar_t[size]; //calculate or guess `size`

关于c++ - 初始化全局变量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102846/

相关文章:

c++ - 在一个大的二进制文件中搜索,在缓冲区中加载 block

c++ - "virtual"对 C++ 中的析构函数有何影响?

c# - 数组读取问题c#

c# - 我如何检查用户是否想要动画(通过系统设置)?

JavaFX 2.0如何将 "pin"一个阶段转移到另一个阶段

if语句中的C++ QList,默认值是多少?

c++ - 是否可以命名 CWinThread 线程?

database - CMD 测试数据库连接

android - Android主题中的windowIsFloating属性

mysql - 我怎样才能让命令行记住或存储引用