VARIANT variant_inp;
CString m_strRXData;
COleSafeArray safearray_inp;
long len,k;
BYTE rxdata[32]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
CString m_ver;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
//
if(len==8||len==9)
{///
}
为什么编译后?
给串口发9个字节, 在debug 下会一次收到9个字节。
而release下会分两次接收,第一次1个字节,第二次8个字节。
但在第二次接收下,rxdata[0]是第一次接收字节,第二次接收的始于rxdat[1];
能否解释一下这个原因?
或者如何才能一次都是收9个字节。
CString m_strRXData;
COleSafeArray safearray_inp;
long len,k;
BYTE rxdata[32]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
CString m_ver;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
//
if(len==8||len==9)
{///
}
为什么编译后?
给串口发9个字节, 在debug 下会一次收到9个字节。
而release下会分两次接收,第一次1个字节,第二次8个字节。
但在第二次接收下,rxdata[0]是第一次接收字节,第二次接收的始于rxdat[1];
能否解释一下这个原因?
或者如何才能一次都是收9个字节。
解决方案 »
- m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);//调试返回的句柄空是什么原因????
- 急~~~创建渲染窗口不成功 初步认为是hWnd问题
- 继续继续问如何解决msvcr80.dll不匹配的问题
- 自定义属性问题
- 请教一个拖放问题~~~ 如何知道,文件被拖放到哪个目录下面??是否有一个回调函数?
- ado中写入access数据库的问题!急!急!急!!!请帮下忙!谢谢!
- 有什么工具能从库文件.LIB中得到全部的函数名(能包括调用参数吗?)、全局变量名?
- DLL加载了,但为什么窗口一闪就消失了呢?
- device context(DC)?(抢分啦!)
- MFC热键自由配置????
- 百分献上!!!急求小波边缘检测算法源程序VC++与MATLAB的均可
- 使用JMail开发共享软件要承担什么法律责任吗?
如何设置呢?
msdn去查