• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

求救!!!

ruyili9803 2004-11-22 06:17:45
我用VC编写了一个带MSCOMM控件的应用程序,在自已的机子上以经可以正确运行,但放到别人的机子上,串口接收不到信息,如果你拖着程序的窗口不停的刷新,又偶而可以收到信息,它的串口是好的。用其它程序试过,操作系统版本都一样。请各位大侠告诉我怎么回事?另外是不是窗口的外观一定要在程序里指明出来吗?比如窗口边距都少。。。。,因为我程序一跑到他的机子上,控件显得很乱,大小也不一样了。感谢大家
...全文
886 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ruyili9803 2004-11-23
我發現如果在下面這一句之前用AfxMessageBox就可以,在它後面就不行
InBuffer=m_ReaderCom.GetInput();
是不是GetInput有什麽鬼?
回复
ruyili9803 2004-11-23
幫忙支持一下
回复
i8210 2004-11-22
up
回复
ruyili9803 2004-11-22
搞不懂,我在OnMScomm事件中加入一個AfxMessageBox("SDFSDFFSD");又好像可以了。大家看我的程序
void CMPRDemoDlg::OnMscommreader()
{
// TODO: Add your control notification handler code here
CByteArray InMsgBuf;
BYTE buf[1024];
switch(m_ReaderCom.GetCommEvent())
{
case 2:
AfxMessageBox("SFDSFDFSD");//就在這裏加了個消息提示就可以
VARIANT InBuffer;
long len,i;
COleSafeArray safearray;
InBuffer=m_ReaderCom.GetInput();
safearray=InBuffer;
len=safearray.GetOneDimSize();
char *p=new char[len*2+1];

if(m_type==0)
{
long k;
{
for(k=0;k<3;k++)
{
safearray.GetElement(&k,&buf[k]);
}
if(buf[0]==0x0F&&buf[1]==0x11&&buf[2]==0x0E)
{
for(k=0,i=3;i<=10;i++,k++)
{
safearray.GetElement(&i,&buf[k]);
int h=(buf[k]&0xF0)>>4;
int l=buf[k]&0x0F;
p[k*2]=(h>=10)?(h-10+'A'):(h+'0');
p[k*2+1]=(l>=10)?(l-10+'A'):(l+'0');
}
p[k*2]='\0';//这时收到的16进制值以转化为字符


m_listmsg.AddString((LPCTSTR)p);
// Invalidate();
UpdateData(FALSE);
}
//bIsFirst=FALSE;
}
return;
}

}
}
大家發發言怎不能讓程式總是昌出消息框吧
回复
echoxue 2004-11-22
help to up and study
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-11-22 06:17
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……