Sorry, 共享内存只能在Unix/Linux类系统上实现。

解决方案 »

  1.   

    实际上有很多种方法实现进程间通信。如,
    Clipboard, COM, DDE, File Mapping, MailSlots, Pipes, RPC, Sockets, WM_COPYDATA等。
      

  2.   

    不可能的,
    除非你使用其他的办法来使另外一个进程做些事情,
    比如使用进程间通讯的机制、COM、OLE、等其他什么的!
      

  3.   

    win 下是有共享内存的
      

  4.   

    查查函数 CreateFileMapping 
      

  5.   

    一点问题都没有!!!
    用WriteProcessMemory和ReadProcessMemory。
    不要说变量,代码都没问题。。
      

  6.   

    对呀对呀!否则fpe是怎么做的?呵呵。
      

  7.   

    用管道?太繁,不如用WM_COPYDATA,个人以为最简单。
      

  8.   


    shared_memory.h ...#ifndef _WIN_SYSTEM_SHARED_MEMORY_H_
    #define _WIN_SYSTEM_SHARED_MEMORY_H_#ifndef _WIN_SYSTEM_DEFS_H_
    #include "system_defs.h"
    #endif //_WIN_SYSTEM_DEFS_H__SYSTEM_BEGINclass shared_memory_t
    {
    public:
    shared_memory_t();
    ~shared_memory_t(); bool_t open(const char *pm_name, uint32_t pm_size);
    void close(); inline LPVOID base();
    inline uint32_t size() const;protected:
    HANDLE i_mapview;
    LPVOID i_base;
    uint32_t i_size;
    };inline LPVOID shared_memory_t::base()
    {
    return i_base;
    }inline uint32_t shared_memory_t::size() const
    {
    return i_size;
    }_SYSTEM_END#endif // _WIN_SYSTEM_SHARED_MEMORY_H_
    shared_memory.cpp ...#ifndef _WIN_SYSTEM_SHARED_MEMORY_H_
    #include "shared_memory.h"
    #endif // _WIN_SYSTEM_SHARED_MEMORY_H__SYSTEM_BEGIN#define _SYS_SHMEM_MEMFILEPREFIX "isdom_system_sharedmemory_%s"shared_memory_t::shared_memory_t()
    : i_mapview(NULL), i_base(NULL), i_size(0)
    {}shared_memory_t::~shared_memory_t()
    {
    close();
    }bool_t shared_memory_t::open(const char *pm_name, uint32_t pm_size)
    {
    if ( i_mapview )
    return _false; char szName[_MAX_PATH];
    sprintf(szName, _SYS_SHMEM_MEMFILEPREFIX, pm_name);
    i_mapview = CreateFileMapping(NULL, NULL, PAGE_READWRITE, 0, pm_size, szName);
    if ( i_mapview )
    {
    i_base = MapViewOfFile(i_mapview, FILE_MAP_ALL_ACCESS, 0, 0, 0);
    i_size = pm_size;
    }
    return ( i_mapview && i_base );
    }void shared_memory_t::close()
    {
    if (i_base)
    {
    UnmapViewOfFile(i_base);
    i_base = NULL;
    i_size = 0;
    }
    if (i_mapview)
    {
    CloseHandle(i_mapview);
    i_mapview = NULL;
    }
    }_SYSTEM_END
      

  9.   

    当然可以的!
    定义全局变量如下:
    #pragma data_seg("Shared")
    LONG g_lShared = 0; //注意一定要初始化。
    #pragma data_seg这个全局变量是相同实例共享的。不同进程共享数据可以用内存映射文件实现。
      

  10.   

    喂、喂,以上各位,人家的意思是被讀寫的進程可不是自已寫的,你們都給些進程間通訊的例子有什麼用。
    應該說,讀寫另一個未知進程唯一的方法是:ReadprocessMemeory/WriteProcessMemory
      

  11.   

    建议用文件内存影象的方法,这是比较好的方法,由于本人没用过,不敢多说,你可以看看windows 核心编程那本书