各位大哥,在视图类的构造函数中为啥不能进行串口初始化啊?
大哥,我在基于CFormView的视图类中拖入了串口通讯控件,并为之添加了一个变量:CMSComm m_Com;然后在视图类的构造函数中对串口进行初始化:
CImageRecogView::CImageRecogView()
: CFormView(CImageRecogView::IDD)
{
//{{AFX_DATA_INIT(CImageRecogView)
//}}AFX_DATA_INIT
// TODO: add construction code here
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
if(m_Com.GetPortOpen())
m_Com.SetPortOpen(FALSE);
m_Com.SetCommPort(1); //选择串口
if( !m_Com.GetPortOpen())
m_Com.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");
}
注:上面几个串口操作函数都用到下面的InvokeHelper()函数
问题是,在编译时老是报错:ASSERT Failed!
即下面InvokeHelper()函数中的断言失败,请问给为大哥这是为什么呢?????同样的操作在一个基于对话框的工程中的对话框类的OnInitDlg()中就没问题,急等解答,谢谢大家!
void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
void* pvRet, const BYTE* pbParamInfo, ...)
{
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
if (m_pCtrlSite == NULL)
return;
va_list argList;
va_start(argList, pbParamInfo);
m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo,
argList);
va_end(argList);
}