简单给个思路就行,但请同时介绍下各种方法的优缺点.很感谢!

解决方案 »

  1.   

    最简单有效的就是放一个全局的,用一个临街区控制各线程的安全访问;
    全局,初始:
    CRITICAL_SECTION cs;
    InitializeCriticalSection(&cs)各线程访问:
    EnterCriticalSection(&cs);
    ...//List..
    LeaveCriticalSection(&cs);over:
    DeleteCriticalSection(&cs);
      

  2.   

    看错..是要进程啊.
    进程一般有四个吧..还有么?
    1.共享DLL
    2.内存映射文件
    3.通过WM_COPYDATA
    4.ReadProcessMemory和WriteProcessMemory都还可以吧..1我只用过简单变量共享.3简单点.
    如果是又读又写的,还得加上Mutex安全访问.
      

  3.   

    2.内存映射文件 
    3.通过WM_COPYDATA这两个我用过,但有点不合适,另外两个我不太懂,我先去查下资料.
      

  4.   

    1.共享DLL如果用这种的话,是不是在dll中分配每个链表页的内存?用普通的分配函数是不是不行?
      

  5.   

    如果是可变链表我不知道怎么处理了..
    好像是dll共享,都是得静态初始化的.
    能不能这样呢..dll中共享一个指针.
    然后进程中,开辟GlobalAlloc()分配空间..?
      

  6.   

    另外我查了下,好像GlobalAlloc()不可以分配全局的内存.
      

  7.   


    本质问题是IPC(interprocess communication), 解决方法很多 ,不过楼主提到的WM_COPYDATA排除掉。
    指针数据还是用DCOM或RPC吧。
      

  8.   


    不行,你必须在DLL中自己写个分配算法,从FileMapping的空间里分配你的链表节点,只有这样你的链表节点才可以被所有进程访问。