• 4960阅读
  • 0回复

线程调用dll抱错 [复制链接]

上一主题 下一主题
离线jianlanger
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-10
— 本帖被 XChinux 执行加亮操作(2010-11-10) —
在用线程调用dll的时候就出现错误。但是直接调用run方法就不会有问题。请大侠赐教

void MyThread::run()
{
    while(true)
    {
        ThreadProcess();
    }
}

void MyThread::ThreadProcess()
{
    LPDWORD  *cardNum = new LPDWORD;
    QLibrary mylib("201Comm.dll");
    readCard read=(readCard)mylib.resolve("ReadCardSN");//从串口读卡号
    if(mylib.load())
    {
             usleep(150);
             if(handle==INVALID_HANDLE_VALUE)
              {
                  qDebug()<<tr("串口打开失败");
              }
              if(read(handle,MachNo,*cardNum) !=1)
               {
                   qDebug()<<123456789<<MachNo;
               }
                else
               {
                   int tempInt = **cardNum;
                   QString  temp= QString::number(tempInt)+":"+QString::number(MachNo);
                   qDebug()<<temp<<"-------------";
               }
    }
    else
    {
        qDebug()<<tr("缺少2o1Com.dll");
    }
    delete cardNum;
}




-------------------------------------------------------------
线程启用代码如下
---------------------------------------------------------------
m = new MyThread;
          m2 = new MyThread;
          m->handle = this->handle;
          m2->handle = this->handle;
          m->MachNo = 0;
          m2->MachNo = 2;
          m->start();
          m2->start();
          m->wait();
          m2->wait();
------------------dll说明------------------

快速回复
限100 字节
 
上一个 下一个