error C2065: 'm_pSerial' : undeclared identifier 错误:
VS2005下,VC++程序。建立的是智能设备MFC应用程序
我在主对话框(ZML_SerialDlg类)头文件里面有如下定义
public:
// 串口对象指针
CCESeries *m_pSerial;
声明了一个串口对象指针,类型为公用。CCESeries是另外我自己的一个类。
然后我用MFC类向导又建立了一个对话框CDlgFunc类。
在那个对话框里面加了一个按钮。
按钮的单击响应函数如下:
void CDlgFunc::OnBnClickedBtnLed0()
{
// TODO: 在此添加控件通知处理程序代码
BYTE *pSend = NULL; //缓冲区
pSend = new BYTE[1];
*pSend=1;
m_pSerial->WriteSyncPort((BYTE*)pSend,1);
delete[] pSend;
pSend = NULL;
}
CDlgFunc类的头文件加了#include"ZML_SerialDlg.h"
编译,又如下错误
1>.\DlgFunc.cpp(57) : error C2065: 'm_pSerial' : undeclared identifier
为什么? 它说m_pSerial没有定义。但是我添加的ZML_SerialDlg.h头文件
中不是有了
public:
// 串口对象指针
CCESeries *m_pSerial;
这个定义吗?帮我给小弟看一下。多谢。
------解决方法--------------------------------------------------------
类中定义的非静态变量作用域就是这个类
必须通过类的对象来访问相应的变量
lz 定义的 m_pSerial 在 ZML_SerialDlg 类内部
类外无法直接访问这个变量
------解决方法--------------------------------------------------------
从:
public:
CZML_SerialDlg *m_zmlDlg;
主:
CDlgFunc dlgFunc;
dlgFunc.m_zmlDlg = this;
dlgFunc.DoModal();
从:
m_zmlDlg->m_pSerial->WriteSyncPort((BYTE*)pSend,1);