c++ - MFC "memory allocation violation"

标签 c++ visual-c++ mfc

我在对话框中创建了一个复选框,并尝试访问其状态(无论是否选中)。这是我的代码:

CButton *m_ctlCheckBlack = (CButton *)GetDlgItem(IDC_BLACK);

int chkBoxBlack = m_ctlCheckBlack->GetCheck();

当我运行这段代码时,它弹出一个异常:

Exception thrown at 0x0FA45564 (mfc140d.dll) in braille_obr.exe: 0xC0000005:      
Access violation reading location 0x00000020.

任何帮助将不胜感激。谢谢。

最佳答案

很少有充分的理由使用 GetDlgItem。在您的资源编辑器中,右键单击按钮和“添加变量..” 它将默认为控件。给它起个名字。您将在对话框类中获得一个成员:

CButton myButtonName;

现在应该可以安全地:

myButtonName.GetChecked( );

因为它将被创建并被正确地子类化。

关于c++ - MFC "memory allocation violation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182872/

相关文章:

c++ - 计算构成给定 IP 范围的子网列表

c++ - 带超时的 C/C++ recv()

c++ - unique_ptr 成员的 vector

c++ - 编译器使用哪些真正的规则集来决定是否内联函数?

C++ 重写一个文件,但在一个词之前遗漏了所有内容

c++ - MyApp.exe 中出现未处理的 win32 异常

c++ - 将数据从缓冲区写入磁盘上的波形文件

c++ - 读取字符串作为命令行参数 C++

visual-c++ - VC++ 中的默认模板参数

c++ - 调用 MoveWindow 后 CComboBox 自动选择文本