100分求mscomm传送十进制0的例子!!! 100分求mscomm传送十进制0的例子!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ...//其他初始化m_serialPort.SetInputMode(1);//comInputModeBinarym_serialPort.SetPortOpen(TRUE);...char szSend[2]={0};szSend[0] = '0'; //要传输的字符'0' szSend[1] = '\0';VARIANT varSend;varSend.vt = VT_BSTR;varSend.bstrVal = ::SysAllocStringByteLen( szSend, sizeof(szSend) );m_serialPort.SetOutput( varSend ); 找一个CSerialPort类,MSComm在VC中就已经不再需要了 用CreateFile读写串口比较方便。----------------------------------------相信自己,相信明天!快给我分,不然我抢的啦^_^---------------------------------------- 时光.漫步 如果发送的第一个字节是'\0'就不能用 CHAR * 来做参数类型,要用下面的方法:const UINT n = 2;CByteArray baSend;baSend.SetSize(n);baSend[0]=0;baSend[1]=...;m_pMSComm->PutOutput(COleVariant(baSend)); if(m_MsComm1.GetPortOpen())//如果串口已经打开,则先关闭 m_MsComm1.SetPortOpen(FALSE); m_MsComm1.SetCommPort(1); //选择com串口 if( !m_MsComm1.GetPortOpen()) m_MsComm1.SetPortOpen(TRUE);//打开串口 else { AfxMessageBox("不能打开串口"); return; } m_MsComm1.SetInputMode(1); //1:表示以二进制方式检取数据(若为0,则为文本方式) m_MsComm1.SetRThreshold(1); //参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件 m_MsComm1.SetInputLen(0); //设置当前接收区数据长度为0 m_MsComm1.GetInput();//先预读缓冲区以清除残留数据 BYTE sendData[1];//保存要发送的配时设置信息 //int b=sizeof(char); sendData[0]=0;//要发送的字符 CByteArray m_Output; m_Output.RemoveAll(); m_Output.SetSize(1); for(i=0;i<1;i++) { m_Output.SetAt(i,sendData[i]); } m_MsComm1.SetOutput(COleVariant(m_Output)); 两个类中传递结构体 Socket的数组 经常自己分配了地址0x00000001,就报内存错了 关于DLL有点不明白 整个工程都可以用到得变量在哪里声明 程序开机自动运行时无法链接ACCESS 自己做的程序员用的小工具,拿出来给大家献丑了。 怎样修改设置使工程支持mfc? 如何获取windows注销/切换用户消息?急!各位老大帮忙 各位帮忙,如何用ATL在一个DLL里面包装一个OCX? vc中的窗口怎么移动到最上层?请教高手!!! 建议csdn成立一个程序员工会,保障所有中国程序员的权益,支持的顶一下 如何生成形如VC中OUTPUT窗口和WORKSPACE栏那样效果的界面?
m_serialPort.SetInputMode(1);//comInputModeBinary
m_serialPort.SetPortOpen(TRUE);
...
char szSend[2]={0};
szSend[0] = '0'; //要传输的字符'0'
szSend[1] = '\0';VARIANT varSend;
varSend.vt = VT_BSTR;
varSend.bstrVal = ::SysAllocStringByteLen( szSend, sizeof(szSend) );m_serialPort.SetOutput( varSend );
----------------------------------------
相信自己,相信明天!快给我分,不然我抢的啦^_^
----------------------------------------
时光.漫步
const UINT n = 2;
CByteArray baSend;
baSend.SetSize(n);
baSend[0]=0;
baSend[1]=...;
m_pMSComm->PutOutput(COleVariant(baSend));
m_MsComm1.SetPortOpen(FALSE);
m_MsComm1.SetCommPort(1); //选择com串口 if( !m_MsComm1.GetPortOpen())
m_MsComm1.SetPortOpen(TRUE);//打开串口
else
{
AfxMessageBox("不能打开串口");
return;
} m_MsComm1.SetInputMode(1); //1:表示以二进制方式检取数据(若为0,则为文本方式)
m_MsComm1.SetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_MsComm1.SetInputLen(0); //设置当前接收区数据长度为0
m_MsComm1.GetInput();//先预读缓冲区以清除残留数据 BYTE sendData[1];//保存要发送的配时设置信息
//int b=sizeof(char);
sendData[0]=0;//要发送的字符 CByteArray m_Output;
m_Output.RemoveAll();
m_Output.SetSize(1);
for(i=0;i<1;i++)
{
m_Output.SetAt(i,sendData[i]);
}
m_MsComm1.SetOutput(COleVariant(m_Output));