如上
十万火急的问题,急啊急!!
谢谢!!!!!!!!!

解决方案 »

  1.   

    我用VB做的后台监控程序,通过COMM口与前台设备通讯,直接在VB环境下运行时与前台设备通讯很成功,就是直接用VB运行程序的时候可以收到前台设备传过来的数据,但是把程序用setup factory6.0工具做成.EXE文件安装后就收不到数据了,不知道我这样说是不是说明白了?谢谢你来看我的问题!!!
      

  2.   

    你被安装通信程序的机器缺少同版本的VB运行库及相应的ActiveX控件的*.Ocx文件。另外请注意运行机器应与编译EXE文件机器是同版本的WINDOWS系统。
      

  3.   

    to zdingyun():
         对于你说的"安装通信程序的机器缺少同版本的VB运行库及相应的ActiveX控件的*.Ocx文件",好象不是这个问题,因为安装程序在我自己机子上安装后通讯也是不成功的.还有,就是怎么确定安装机子上少了同版本的VB运行库及相应的ActiveX控件的*.Ocx文件呢?哪里可以看到呢?郁闷啊,都一个星期了还没解决,我都不知道是哪里出了问题啊!555555
      

  4.   

    yyxa82326(petrel(` v `)) 
    从你叙述看,代码在VB编译环境下能运行,,编译成EXE文件,然后生成打包文件,安装在你有VB编译环境的机器就不能运行。
    请检查EXE文件的其他相关文件的路径是否与代码所处的路径是否一致。
    不知你是否可将代码贴出,便于分析。
      

  5.   

    将所有的代码都帖出来吗?那太多了啊,也帖不完啊!我刚仔细看了一下,发现在代码的目录下有个EMFProc.dll的文件,这个文件是自己封装的,打包的时候也是和.EXE文件一样手动添加的(用的是setup factoty6.0打包工具),EXE文件的其他相关文件是指什么啊?EXE文件就是在"文件"菜单中的"生成****.EXE"项中自动生成的啊!如果要代码的话用邮箱吧!
    还有我用VB自带的打包工具打包后在安装过程中提示"丢失数据文件"
      

  6.   

    监测一下com口是否有数据出来
      

  7.   

    我的波特率是9600,打包还会影响通讯速度或延时吗?comm口有数据的,我用串口调试工具打开COMM2口可以收到程序发来的数据,但是程序收不到COMM2口的数据,真的奇怪了!
      

  8.   

    yyxa82326(petrel(` v `))  
    邮箱地址已发消息给你,请查收.
      

  9.   

    zdingyun() 
    代码已经发给你了,有劳你看看,谢谢!
      

  10.   

    yyxa82326(petrel(` v `))  
    邮件收到
      

  11.   

    你生成exe文件,运行他看看是否有数据.不再编译环境下
      

  12.   

    yyxa82326(petrel(` v `))
    请简单叙述通信协议
      

  13.   

    从你代码中frmmain的
    Private Sub Form_Load()
    '
    If 0 Then
    '自我测试时打开
        mscom.CommPort = 2
        mscom.Settings = "9600,s,8,1"
        mscom.InBufferSize = MODEM_BUFF_SIZE
        mscom.InBufferCount = 0 '清空接收缓冲区
        mscom.InputLen = 0 '用input属性读取将一次读取缓冲区的全部内容
        mscom.InputMode = comInputModeBinary
        mscom.RThreshold = 1 '只要收到一个字符都将产生中断
        mscom.PortOpen = True
       End Sub '
    End If
    End Sub
    及timerTest的
    Private Sub timerTest_Timer()
    '
       buffer = arr
       mscom.Output = buffer
            
    '
    End Sub
    及整个工程代码中未见COM2口打开,所以你用串口调试工具打开COMM2口可以收到程序发来的数据,而未发生冲突。如果程序代码中打开了COM2,串口调试工具就无法打开COMM2。
      

  14.   

    刚按照303afei()说的方法试了一下,也收不到数据
    做了几个尝试得出一个现象就是,无论在VB编译的环境下,或者在直接运行生成的EXE文件,或者打包安装,用串口调试工具(即打开comm2口)通讯都是成功的.如果用硬件装置通讯的话,直接运行生成的EXE文件,或者打包安装通讯就不成功了!  
    这样是不是就可以排除打包出错的原因呢?我想可能是程序与硬件的通讯时间上的问题,但是在VB编译的环境下通讯又是成功的,这到底怎么解释啊!头都N个大了!!!!!!!
      

  15.   

    zdingyun() 
    程序正常运行的时候是不用到COMM2口的,COMM2只是用来自我测试的
    通讯协议简单点说的话就是通过前台软件给硬件装置发命令,硬件装置收到命令后作出相应的动作,并给前台软件发一个标志通知前台
      

  16.   

    请问在生成EXE文件的过程中可不可能出错????
      

  17.   

    303afei() 
    什么是VB的调试信息啊?  你说的延时是哪里的延时,是发送命令的延时,还是发送命令之后等待的延时?在哪里加延时啊?
      

  18.   

    你MSCOMM控件属性Settings使用设置中有改变,且使用RS485口,可能会引起问题。关于此问题请参阅
    http://community.csdn.net/Expert/topic/5458/5458019.xml?temp=.5942041
    的讨论。
      

  19.   

    yyxa82326(petrel(` v `)) 
    今较仔细看了你给的主窗体代码,使用大量的WIN API函数。
    主界面的图形使用API函数画,而不用VB提供的控件,使得代码较难查错,不便于维护。
    不知此代码是你自己写的吗?
    建议设备的图形控制界面完全可由BMP或JEPG图加载。由IMAGE控件作为控制命令的受体。
    这样窗体界面在设计时就能一目了然,便于维护。
    调试你的程序代码,发送命令正常,应不了解通信协议,而无法测试接收代码。
      

  20.   

    原先我也碰到类似的问题,在IDE环境下程序运行正常,但编译后程序运行就出错,
    试了下将VB的工程属性中编译成P代码(一般是本地代码),结果好了.
    不知道是否合适你的这个问题