MSCcomm控件出现ASSERT错误
来源:互联网 发布:知乎页面改版 编辑:程序博客网 时间:2024/06/05 19:02
登录
nchygy的专栏
[原]串口读事件,函数中的奇怪问题。safearray A=variant B的赋值错误.期待解决中...
2011-11-13阅读484 评论2
环境VC2008
功能:串口Mscomm通讯,收发字符
1. 初始化内容:
if (!Mscomm)
{
MessageBoxA(NULL,("串口输入错误,请检查串口通讯实例"),NULL,NULL);
return true;
}
Mscomm->put_CommPort(PortNum);//com1
if(Mscomm->get_PortOpen())
{
MessageBoxA(NULL,("串口已打开,请先关闭"),NULL,NULL);
return false;
}
Mscomm->put_InBufferSize(1024);
Mscomm->put_OutBufferSize(512);
if(!Mscomm->get_PortOpen())
{
Mscomm->put_PortOpen(TRUE);
MessageBox(NULL,("串口打开成功"),"成功",NULL);
}
else
MessageBox(NULL,("无法打开串口端口"),NULL,NULL);
// m_mscomm1.SetSettings(chSet);//"4800,n,8,1"
Mscomm->put_Settings("9600,e,7,2");
Mscomm->put_InputMode(Mscomm->comInputModeText);//字符检取数据
Mscomm->put_RThreshold(1);//触发事件字节数
Mscomm->put_InputLen(0);//全部读完
2. oncomm事件响应代码出错:
int CommEvent=Mscomm->get_CommEvent();
if(CommEvent == 2)
{
COleVariant varInput;//VARIANT
COleSafeArray sfarrInput;
static long len,k;
static CString strTemp;
len = Mscomm->get_InBufferCount();
varInput = Mscomm->get_Input();
//sfarrInput.Attach(varInput);//试后同样出错
sfarrInput = varInput;//错误出现,定位于COleSafeArray中重载的"="
//后续省略
}
3. 错误内容:
Assert出错,定位到MFC封装的函数中:
COleSafeArray&COleSafeArray::operator=(const VARIANT & varSrc)
{
ASSERT (varSrc.vt & VT_ARRAY); //varSrc.vt =8,本句出错
AfxCheckError(::VariantCopy(this,(LPVARIANT)&varSrc));
return *this;
}
4. 本程序,原来若初始化InputMode为二进制数据时,成功运行,没有错误。但是初始化为文本时出错。
原因不明。求教。另外因本程序传递的是字符。怎么办才对?
功能:串口Mscomm通讯,收发字符
1. 初始化内容:
if (!Mscomm)
{
MessageBoxA(NULL,("串口输入错误,请检查串口通讯实例"),NULL,NULL);
return true;
}
Mscomm->put_CommPort(PortNum);//com1
if(Mscomm->get_PortOpen())
{
MessageBoxA(NULL,("串口已打开,请先关闭"),NULL,NULL);
return false;
}
Mscomm->put_InBufferSize(1024);
Mscomm->put_OutBufferSize(512);
if(!Mscomm->get_PortOpen())
{
Mscomm->put_PortOpen(TRUE);
MessageBox(NULL,("串口打开成功"),"成功",NULL);
}
else
MessageBox(NULL,("无法打开串口端口"),NULL,NULL);
// m_mscomm1.SetSettings(chSet);//"4800,n,8,1"
Mscomm->put_Settings("9600,e,7,2");
Mscomm->put_InputMode(Mscomm->comInputModeText);//字符检取数据
Mscomm->put_RThreshold(1);//触发事件字节数
Mscomm->put_InputLen(0);//全部读完
2. oncomm事件响应代码出错:
int CommEvent=Mscomm->get_CommEvent();
if(CommEvent == 2)
{
COleVariant varInput;//VARIANT
COleSafeArray sfarrInput;
static long len,k;
static CString strTemp;
len = Mscomm->get_InBufferCount();
varInput = Mscomm->get_Input();
//sfarrInput.Attach(varInput);//试后同样出错
sfarrInput = varInput;//错误出现,定位于COleSafeArray中重载的"="
//后续省略
}
3. 错误内容:
Assert出错,定位到MFC封装的函数中:
COleSafeArray&COleSafeArray::operator=(const VARIANT & varSrc)
{
ASSERT (varSrc.vt & VT_ARRAY); //varSrc.vt =8,本句出错
AfxCheckError(::VariantCopy(this,(LPVARIANT)&varSrc));
return *this;
}
4. 本程序,原来若初始化InputMode为二进制数据时,成功运行,没有错误。但是初始化为文本时出错。
原因不明。求教。另外因本程序传递的是字符。怎么办才对?
上一篇
请先登录后,再发表评论!
回顶部
0 0
- MSCcomm控件出现ASSERT错误
- VS2010 出现 devenv.exe -Assert Failure 错误
- vc程序在执行时出现assert错误,救命!!!!
- 使用CVSListBox时出现afxVSListBox.cpp assert错误
- EditText控件出现错误了
- 抛出自定义错误 assert
- 断言错误:ASSERT(ContinueModal())
- python错误调试--assert
- python 错误处理 assert
- 关于DockControlBar()时调试出现ASSERT(pBar->m_pDockContext != NULL);错误处
- Rails3程序在产品模式下出现assert文件404错误的问题
- Qt 学习:comboBox编程时使用currentIndexChanged老是出现 assert failure错误
- jsp页面引入ocx控件出现错误
- 自定义控件使用出现莫名错误--解决方法
- C#使用数据验证控件出现错误
- win8.1安装vs2010,再安装DEV控件后后报devenv.exe assert failure错误
- image控件绑定width出现错误,用label控件代替
- try--except 捕捉assert 错误
- Rust and Go
- 一个例子说明如何在DataSnap中使用FireDAC
- 微信开发如何做本地调试?
- java数组
- Android 百分比布局支持库使用
- MSCcomm控件出现ASSERT错误
- 任意匹配
- 3_寻找假币问题(分治法)
- javascript生成器函数function generator初探和理解
- 编程技巧 - 4
- scala学习之:scala中的单例
- 专业之外——活动负责人的体验
- linq实现随机查询
- Java回调机制解析
更多评论(2)2楼Huaerge2014-03-04 13:14
我做的是从文件里面读出文本,然后将文本的数据转换成16进制进行发送,当然文本中的字符也是数字和字母,不存在汉字
1楼Huaerge2012-12-25 09:18
这个问题解决了吗?