很不好意思,代码都在我内网机器上(我在公司),传不出来的。
以下大致写写主要代码:
static int num1=0;
static int num2=0;
static int num3=0;
static int num4=0;
static int num5=0;
void OnButtonCurrentDc()
{
   if(0==num1)
   {
      this->inialKBUSReceive();//此函数的功能就是初始化接受
      char CurrentDc[14]={':','C','O','N','F',':','C','U','R','R',':','D','C','\r'};
      //以上是万用表指令:配制成直流电流模式 
      this->KBUS_SendMSG(CurrentDc,14);//发送字符串
   }
      num1++;
}void OnButtonCurrentAc()
{
   if(0==num2)
   {
      this->inialKBUSReceive();
      char CurrentAc[14]={':','C','O','N','F',':','C','U','R','R',':','A','C','\r'};
      this->KBUS_SendMSG(CurrentAc,14);
   }
      num2++;
}void OnButtonVoltageDc()
{
   if(0==num3)
   {
      this->inialKBUSReceive();
      char VoltageDc[14]={':','C','O','N','F',':','V','O','L','T',':','D','C','\r'};
      this->KBUS_SendMSG(VoltageDc,14);
   }
      num3++;
}……
(还有两个类似的函数,形式一致),总是第一次按某个按钮,能正确发送指令,但紧接着按其他按钮就出错:“系统找不到指定的文件”。

解决方案 »

  1.   

    上面各函数前都忘加类名了,应该如void CPortDlg:: OnButtonCurrentDc()形式。开始时,在各函数里我没有加if语句,结果运行之后,第一次按纽正确,重复按此按纽(或改按其他按纽)就报错:“系统找不到指定的文件”,后来我加入了上面的if语句,结果按同一个按钮两次不再提示了,但第二次按其余按纽时仍然报错。
      

  2.   

    num1++;你把它改了
    再按的时候
    还能执行下面的..?if(0==num3)
       {
          this->inialKBUSReceive();
          char VoltageDc[14]={':','C','O','N','F',':','V','O','L','T',':','D','C','\r'};
          this->KBUS_SendMSG(VoltageDc,14);
       }
      

  3.   

    if(0==num1)
       {
          this->inialKBUSReceive();
          char VoltageDc[14]={':','C','O','N','F',':','V','O','L','T',':','D','C','\r'};
          this->KBUS_SendMSG(VoltageDc,14);
       }
    -----你自己跟下你的代码..
      

  4.   

    跟踪结果似乎是转入MFC后台运行,最后进入反汇编代码(我不懂),然后最终停在那里,没有重新回来,这是怎么回事???
      

  5.   

    inialKBUSReceive很可疑,每按一次按钮都来一下可能出问题。除非你在KBUS_SendMSG中关闭了硬件。
    //硬件的初始化只能一次。