我刚开始学VC,请问保护成员m_Message这样初始化为什么可以在类外访问?谢谢。 另外,在VC环境自动生成SDI的代码中,为什么CC20010731Doc()要放在受保护的部分,而不放在公共部分,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为MFC不希望你new一个CC20010731Doc对象:CC20010731Doc* pDoc = new CC20010731Doc;他是在mfc内部通过CreateObject生成的。 你的程序不对吧!不可能是这样的,我试过了除非这个程序不是你编的,别人已经在doc申明中用了friend class XXXXX了!你仔细看看! c_z_y你好,我是用wizard生成的MFC程序,工程名为c20010731,除了上面的改动外什么都没动,真的可以运行。谢谢关注。 注意!DECLARE_DYNCREATE(CC20010731Doc)char * m_Message; // <--查看定义:#define DECLARE_DYNAMIC(class_name) protected: static CRuntimeClass* PASCAL _GetBaseClass(); public: static const AFX_DATA CRuntimeClass class##class_name; virtual CRuntimeClass* GetRuntimeClass() const; #define DECLARE_DYNCREATE(class_name) DECLARE_DYNAMIC(class_name) static CObject* PASCAL CreateObject();知道怎么回事了吗?DECLARE_DYNCREATE宏在定义时加入了一个public节,因此m_Message实际上是共有变量。 哈!原来如比啊!~~~~~~~~~~~~~~hahahahhaha其实看看左边的class tree上的变量的图标,就应该看出来是public还是protected了 to: llshore() 这里的“PASCAL ”指得是什么? 用NSIS制作安装包, 在执行安装包时如何 创建数据库 visual studio 2010里加载套接字 vc++ 如何读取.pcx格式文件 IHTMLDocument2 的相关问题请教,有贴代码 如何点下按钮打开一个网页?(会者简单的问题)在线等待。 !!如何获取弹出的对话框句柄,而非程序!! Edit控件的一个小问题(自动换行)、、 BYTE转CSTRING的问题,啊白求教 :=-=-=-=-= 网络高手请看过来 请问怎么在VC里拦截MSIE控件的事件 如何建立一个标题栏在右边、左边或者下边的窗口 数据库菜问——
CC20010731Doc* pDoc = new CC20010731Doc;
他是在mfc内部通过CreateObject生成的。
除非这个程序不是你编的,别人已经在doc申明中用了
friend class XXXXX了!你仔细看看!
DECLARE_DYNCREATE(CC20010731Doc)
char * m_Message; // <--
查看定义:
#define DECLARE_DYNAMIC(class_name) protected: static CRuntimeClass* PASCAL _GetBaseClass(); public: static const AFX_DATA CRuntimeClass class##class_name; virtual CRuntimeClass* GetRuntimeClass() const;
#define DECLARE_DYNCREATE(class_name) DECLARE_DYNAMIC(class_name) static CObject* PASCAL CreateObject();知道怎么回事了吗?DECLARE_DYNCREATE宏在定义时加入了一个public节,因此m_Message实际上是共有变量。
其实看看左边的class tree上的变量的图标,就应该看出来是public还是protected了
这里的“PASCAL ”指得是什么?