你指的对象是什么?如果只是说文件,以overlapped方式打开比较合适,也比较容易解决
同步问题。socket或串口一类的资源也适用。

解决方案 »

  1.   

    File mapping可以来共享内存, 把你的C++ Object分配在这里就能共享了。注意重载new,delete就行了。
      

  2.   

    用CreateFileMapping建立一块内存
    在用MapViewOfFile然后在另外一个要调用的地方 在用CreateFileMapping 或OpenFileMapping  
    然后还是用MapViewOfFile试一下吧!
        方法不只这一个 还有很多呢,好象CSDN里就有好的文章, 应该在多进程那里!
     
      

  3.   

    啊哦,看来我刚才把问题理解错了,sorry:(
      

  4.   

    共享数据方法很多但归到底都使用filemapping,所以用他是最好的,看一下msdn很简单,但实际应用要注意同部及内存释放.
      

  5.   

    HANDLE hMyShareMapFile;
    LPSTR pszMySharedMapView;//吧他们声明为全局变量
    //下面是关于创建这个共享内存进程的代码
    hMyShareMapFile = CreateFileMapping((HANDLE)0xFFFFFFFF,
    NULL,PAGE_READWRITE,0,0x1000,"MyShareMem");pszMySharedMapView = (LPSTR)MapViewOfFile(
    hMyShareMapFile,FILE_MAP_READ|FILE_MAP_WRITE,  0,0,0);
    strcpy(pszMySharedMapView,"这是一个测试");//共享内容为一个字符串
    strcpy(szHello,pszMySharedMapView);//下面是另外一个共享内存进程的代码  这个要在上面的那个进程运行以后在执行
    HANDLE hMySharedMapFile;
    LPSTR pszMySharedMapView;//声明为全局变量hMySharedMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS,   FALSE,"MyShareMem");
    pszMySharedMapView=(LPSTR)MapViewOfFile(hMySharedMapFile,
    FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
     strcpy(szHello,pszMySharedMapView);
     这是你看看szHello这个字符串的内容应该是上面的进程所设置的内容
    关于函数的参数你看看书吧,或者看看MSDN
      

  6.   

    内存映射文件,参见stevens
    unix编程系列图书