• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 我想实现在一个对话框点击某个按钮打开另一个对话框,但是老出错,C++好难

我想实现在一个对话框点击某个按钮打开另一个对话框,但是老出错,C++好难

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 我想实现在一个对话框点击某个按钮打开另一个对话框,但是老出错,C++好难等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 我想实现在一个对话框点击某个按钮打开另一个对话框,但是老出错,C++好难
描述:

上次上传附件没有成功,这次附件里面是源代码。
想在主对话框maindlg里面的成员函数OnButtonAdd里写CinsertDlg.DoModal(),说CinsertDlg不是一个类.我都已经新建这个类了,并且把它和对话框资源做了连接,而且也include头文件了,但是总是报错说它没有声明不是一个类什么的。我为了找到错误,在主程序里面写CInsertDlg dlg; dlg.domodal();运行的时候迸出来了这个框,说明这个类已经是声明了的,但是在主对话框里面的onButtonAdd里写就不行,总说不是一个类没声明之类,后来东改西改的,现在连主程序里打开CInsertDLG的功能也出错了,因为根本就不知道错在何处,改都改不回去。附件里面是我的源代码,求高人帮我看看吧,谢谢了,都整了两天了。我真不甘心被该死的C++刁难。 
附:是在李马大侠的一个信息管理系统代码基础上改的


解决方案1:

我已经解决了。我可以把原码给你。下面是原因,如果不懂的话可以看代码,出错的地方已经标出了。
//#ifndef ATLGUI_MYMIS
//#define ATLGUI_MYMIS
//上面这两个宏就是造成CInsertDlg类不能定义的罪魁祸首,楼主,因为我们在CMainDlg类中也有他们。
//主程序中#include "MainDlg.h"也就是说程序先定义的是CMainDlg类,可在定义这个类的时候,
//我们会调用这两个宏#ifndef ATLGUI_MYMIS #define ATLGUI_MYMIS,它们的意思是,如果没有定义ATLGUI_MYMIS
//的话,我们就define变这个变量,可接下来,我们在主程序中又调用#include "InsertDlg.h",可在这个头文件中
//也有这两个宏,因为ATLGUI_MYMIS变量已经定义过了。因此这个宏不能满足,就会退出,当然就没定义CInsertDlg了
//这两个宏也是重要的。它可以避免一个类的重复定义,但是楼主,你错就错在不应该两个类的宏判断都用一样的变量
//这样的话,第一类定义了,其它的类就不能在定义了。可以换个变量(不同类用不同变量)如下。
#ifndef XXXXX
#define XXXXX

解决方案2:

第一,你InsertDlg.h有include "InsertDlg.h"包含自己,第一个错误
第二,InsertDlg.h定义


#ifndef ATLGUI_MYMIS
#define ATLGUI_MYMIS
...
#endif

和MainDlg.h中定义一致,导致编译器认为InsertDlg.h中的内容已定义,但实际上又没有定义,所以会有error C2065: 'CInsertDlg' : undeclared identifier 


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 我想实现在一个对话框点击某个按钮打开另一个对话框,但是老出错,C++好难

相关文章

  • 2017-06-05 关于一个DLL进程的问题?谢谢谢谢!
  • 2017-06-04 调用进程外组件对象的QueryInterface函数的问题
  • 2017-06-05 关于线程的问题,为什么会这样???????????
  • 2017-06-05 深入浅出MFC中又一不懂的问题,诚请赐教
  • 2017-06-04 关于多个mscomm共同应用的问题
  • 2017-06-04 关于服务中使用wordapplication
  • 2017-06-05 CDib类能在常规dll中用么?
  • 2017-06-04 我想写一个firefoxplugin,请问如何实现类似于windowscom中的event功能?
  • 2017-06-05 求救:activex生成的cab包,第一次可以下载安装,但以后就没法更新了,怎么回事啊???
  • 2017-06-04 问几个关于ActiveX的问题。。

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++实现activex获取MAC地址
    • 如何将我注入的dll卸载掉而不需要停止进程?因为发现有时候直接把进程关闭后,dll还是继续调用着。
    • ATLVC++MFC如何制作工程模板
    • 进程问题,请大家帮帮忙!
    • 如何修改现有的dll为另一dll?在线等待!!
    • 需要一针见血的回答。
    • 高手指教:如何上下移动桌面壁纸???
    • 編寫COM組件的時候預見的一個難以解決的問題---------在線等待
    • 小弟初学dll,请问各位大虾,如何编写dll的内部函数阿?
    • 使用IDispatchPtr怎么提示未定义?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有