如题

解决方案 »

  1.   

    CreateFileMapping(), OpenFileMapping, MapViewOfFile, CloseHandle
    常用的几个API,看看MSDN吧,我用VC做过,在两个进程间通讯,用的就是内存映射,想要的话可以给你
      

  2.   

    也可以在DLL中开个共享内存,两个进程加载
      

  3.   

    下面是一个例子:
    void CreateHugeFile(LPCTSTR strFileName, long nFileLen)
    {
    HANDLE hFile;
    hFile = CreateFile(
    strFileName,//"C:\\Temp\\Test.dat",
    GENERIC_WRITE,                      //必须有此权限
    0,
    NULL,
    CREATE_NEW,
    FILE_ATTRIBUTE_NORMAL,
    NULL); if( hFile == INVALID_HANDLE_VALUE )
    {
    //处理出错信息
    //获得信息
    LPVOID lpMsgBuf; //Windows will allocate 
    ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0, 
    GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
    (LPTSTR)&lpMsgBuf, 0, NULL );

    //显示
    ::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION );
    //lpMsgBuf中是你要的错误提示.

    //释放内存
    ::LocalFree( lpMsgBuf ); return;
    }
    DWORD dwPtr = SetFilePointer(
    hFile,
    nFileLen,//0x02800000,                         // 200 M
    NULL,
    FILE_BEGIN);
    if (dwPtr == 0xFFFFFFFF) 

    // 处理出错信息
    //获得信息
    LPVOID lpMsgBuf; //Windows will allocate 
    ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0, 
    GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
    (LPTSTR)&lpMsgBuf, 0, NULL );

    //显示
    ::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION );
    //lpMsgBuf中是你要的错误提示.

    //释放内存
    ::LocalFree( lpMsgBuf ); return;

    } // End of error handler 
    SetEndOfFile(hFile);
    CloseHandle(hFile);
    }