你到底是要Delphi的程序还是VC++的程序?

解决方案 »

  1.   

    很简单,dll初始化时,建立一个CriticalSection对象,然后:
    cardexecu()
    {
        EnterCriticalSection(...);
        // 你原来的程序
        ...
        LeaveCriticalSection(...);
    }
      

  2.   

    westaf说的对,用临界区是最合适的。
    1.声明临界区对象 CRITICALSECTION cr;
    2.初始化临界区对象 InitializeCriticalSection(&cr);
    3.使用
    cardexecu()
    {
        ...//初始化部分,可以同步进行
        EnterCriticalSection(...);
        // 你原来的程序中开始使用串口的部分
        ...
        LeaveCriticalSection(...);//使用串口结束
        ...//清理工作
    }