![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
MFC编程中,我想在CMainFrame中添加成员变量,类向导不能添加,没有“控制id”,我在代码中添加,出错!
我做的是snamp二次开发,classCMainFrame:publicCMDIFrameWnd{DECLARE_DYNAMIC(CMainFrame)public:CM...
我做的是snamp二次开发,
class CMainFrame : public CMDIFrameWnd
{
DECLARE_DYNAMIC(CMainFrame)
public:
CMainFrame();
// Attributes
public:
BOOL m_bSerialPortOpened;。。。。。(应该是原来定义的一些成员变量)
(我添加)
CString m_nMF_A_Value ;
CString m_nMF_A_No ;
CString m_nMF_A_Send ;
CString m_nMF_B_Value;
CString m_nMF_B_No;
CString m_nMF_B_Send;
CString m_nMF_C_Value;
CString m_nMF_C_No;
CString m_nMF_C_Send;
bool m_bParametersSet;
}
调试通过了,但是运行的话,就会出现内存不能“read”,请问是什么原因,我想添加CMainFrame的成员变量应该怎么做??? 展开
class CMainFrame : public CMDIFrameWnd
{
DECLARE_DYNAMIC(CMainFrame)
public:
CMainFrame();
// Attributes
public:
BOOL m_bSerialPortOpened;。。。。。(应该是原来定义的一些成员变量)
(我添加)
CString m_nMF_A_Value ;
CString m_nMF_A_No ;
CString m_nMF_A_Send ;
CString m_nMF_B_Value;
CString m_nMF_B_No;
CString m_nMF_B_Send;
CString m_nMF_C_Value;
CString m_nMF_C_No;
CString m_nMF_C_Send;
bool m_bParametersSet;
}
调试通过了,但是运行的话,就会出现内存不能“read”,请问是什么原因,我想添加CMainFrame的成员变量应该怎么做??? 展开
2个回答
展开全部
添加成员变量可以直接在头文件相应位置添加,没有问题。
运行出错?调试通过了,说明DEBUG版本没问题,那么你运行的是DEBUG 还是RELEASE。仔细检查下,再把出错的地方描述清楚,才好解决。
运行出错?调试通过了,说明DEBUG版本没问题,那么你运行的是DEBUG 还是RELEASE。仔细检查下,再把出错的地方描述清楚,才好解决。
追问
运行的是RELEASE当中的可生成文件,奇怪的是添加三个成员的时后CString m_nMF_A_Value ; CString m_nMF_A_No ; CString m_nMF_A_Send ;RELEASE可以执行,退出后出错“0x7c93d8”指令引用的“0x00000000”内存。该内存不能被“read”。全部添加后RELEASE无法执行,调试的时候提示,unhandled exception in Snamp.exe(MFC42.DLL):0X00000005:ACCESS Violation
追答
很纠结的问题,我建议:
1、把程序编译时产生的警告信息好好清理下,尽量把警告消除;
2、你新增的代码全部屏蔽掉,再逐一放开,定位到错误发生的位置,然后再分析出错原因;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询