最好用互斥对象 (参看CMutex 基类), 不能用临界区方法, 临界区方法只适用一个进程内的不同Threads间的同步.

解决方案 »

  1.   

    你只有使用内存映射文件的方法,具体方法如下:
    1、在一个进程内用CreateFileMapping来创建一个内存映射文件,其中hFile=0xFFFFFFFF(具体其他参数可参考MSDN)
    2、用MapViewOfFile来得到操作内存映射文件的数据指针,将要共享的数据写入该指针里
    3、UnmapVieOfFile
    4、在另一个进程内用OpenFileMapping(使用相同的lpName)得到第一个进程的句柄,并用MapViewOfFile得到数据指针,从而得到了共享的内存数据
    我有具体的例程,如有需要请E_Mail给我:[email protected]
      

  2.   

    SORRY,这几天网络出了问题,一直没来看.
      

  3.   

    最好Areslee和BenjaminNing的方法一起用!
    在共享的内存中读写标志变量的时候,需要用互斥的对象Mutex Objects来进行保护!
    但是如果大量的数据读写直接使用互斥对象Mutex Objects会导致进程相互等待时间过长!所以两种方法一起用,进程监测到标志变量为他人占用时,可以先做其他事情!
      

  4.   

    当然还可以用Semaphore Objects来替代Mutex Objects!