追逐梦想

临渊羡鱼,不如退而结网
posts - 8, comments - 18, trackbacks - 0, articles - 0
调用GetDlgItem函数出现File:winocc.cpp Line:76

-转载地址:http://hi.baidu.com/listenprogram/blog/item/6f10f1660aef9820aa184c88.html

在程序中调用GetDlgItem函数,编译后运行出现下面的错误:

Debug Assertion Failed!

Program: G:\程序\源程序\RTU\MonBUS\DEBUG\MonBUS.exe
File: winocc.cpp
Line:76
For information on how your program can cause an assertion
failure,see the Visual C++ documentation on asserts.

(Press Retry to debug the application)


常见问题:DoModal后调用GetDlgItem导致以上错误
产生原因:这时候窗口已经关闭,没有DlgItem一说
解决方法:在退出前保存为成员变量,Member Vari;
                  或者创建非模态对话框,指针可直接调用GetDlgItem()



GetDlgItem这个函数的含义要看上下文。
解析标识符时,首先扩展宏,然后判断是否存在当前类的同名成员,如果存在,那么就使用这个成员,否则按照查找父类。如果父类中多于一个类具有同名的成员,那么需要用类名::成员名区分。父类中如果也没有找到,那么查找全局

全 局的(在上下文是CWnd的成员函数时需要用::指明)的声明参见http://msdn.microsoft.com/library/en- us/winui/WinUI/WindowsUserInterface/Windowing/DialogBoxes/DialogBoxReference/DialogBoxFunctions/GetDlgItem.asp

CWnd的成员的声明在http://msdn.microsoft.com/library/en-us/dv_wcemfc4/html/aflrfcwndcolcolgetdlgitem.asp

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理