我用内存映射文件在两个进程间传递数据,是没有使用实际文件的那种。在使用大概两万次左右时,数据就再也无法传送了。内存的大小是10240byte,如果改为102400,可使用的次数会更少,而改小的话却没有影响。那位帮忙,不胜感激!
DllMain()函数如下:BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
 )
{
    switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
            ghFileMap = ::CreateFileMapping(INVALID_HANDLE_VALUE, 
        NULL, PAGE_READWRITE, 0, MAX_SIZE_MAP, MAP_FILE_NAME);
gpMapAddr = (char*)::MapViewOfFile(ghFileMap, 
FILE_MAP_ALL_ACCESS, 0, 0, 0);
break; case DLL_PROCESS_DETACH:
::UnmapViewOfFile(gpMapAddr);
::CloseHandle(ghFileMap);
            break; case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
break;
    }
    return TRUE;
}