void CYjfeng2Dlg::OnOnCommCommtral() //串口程序开始,用VC控件
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
if(bReceive)
{
if(m_Com.GetCommEvent()==2)
{
variant_inp=m_Com.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k); if(m_nInputMode==2)
strtemp.Format("%02x ",bt); else
strtemp.Format("%c",bt);
m_strReceive=m_strReceive+strtemp;
//****************
char ch=(char)bt;
ReadFile(ch); //调用GPS解码程序
//**************** }
m_strReceive+="\n";
}
}
UpdateData(FALSE);
}
//****************************************************88
//GPS读数程序
void CYjfeng2Dlg::ReadFile(BYTE ar)
{
CString m_strReceived;
CString m_strChecksum;
CString sitionx; //经度保存
CString sitiony; //纬度保存
CString csitionx;
CString csitiony;
CString Time; int SectionID;
int g;
int p;
int r;
int m;
int c;
if(ar=='$')SectionID=0;
else if(ar=='G')g=1;
else if(ar=='P')p=1;
else if(ar=='R')r=1;
else if(ar=='M')m=1;
else if(ar=='C')c=1;
else if(ar==',')
{
SectionID++; //逗号记数标志加一
}
else if(ar=='*')
{
m_sitionx=_T(" ");
m_sitiony=_T(" ");
g=0;p=0;r=0;m=0;c=0;
}
else
{
if(g&&p&&r&&m&&c) //全为一的情况下开始读取GPS信号
{
if(SectionID==1)Time+=ar; //根据逗号的记数保存字符
else if(SectionID==3)sitiony+=ar;
else if(SectionID==5)sitionx+=ar;
csitionx.Format("%c",sitionx);
csitiony.Format("%c",sitiony);
m_sitionx=m_sitionx+csitionx; //纬度输出
m_sitiony=m_sitiony+csitiony; //经度输出
}
}
}
问题:程序现在没有输出!1.程序中BYTE bt=*(char*)(rxdata+k);中的bt是字符变量,还是指针,
2.
解决方案 »
- 请问,destroying an open CInternetFile with handle 00CC000C 这个什么意思哦?
- ATL实现类似QQ表情的快捷方式的方法
- vc+ado+access 出错
- 怎样获得当前的显示输出设备
- (在线等!)奇怪的错误,无法给字符串赋值!
- 开发网络游戏的客户端是否需要多线程
- 来点干货,远程文件访问工具“网络神偷”技术大揭密
- 请问那一个windows api能够获得系统设置的图象位数?
- 兄弟们帮忙看看问题出在哪里:感觉子线程PostMessage发到了别的窗口
- 请问vc下如何实现com出接口的接收器?
- 用mfc编写ocx的一个问题
- 达人帮忙啊,求win32多线程程序设计电子版!!!!
当然是字符变量了