hFileMapping = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0, ALLOCSIZE,MAP_FILE_NAME );
// GetLastError() must be ERROR_ALREADY_EXISTS !!!
if ( hFileMapping == NULL )
{
MessageBox( "shared memory create failed!" );
}
else
{
LPVOID lpMem;
lpMem = MapViewOfFile( hFileMapping,FILE_MAP_ALL_ACCESS,0, 0,ALLOCSIZE );
if ( lpMem == NULL )
{
MessageBox( "can not get the shared memory pointer!!" );
CloseHandle( hFileMapping );
}
else
{
sData *pData = (sData*)lpMem;
memset(pData, 0, (2048*96+7)*sizeof(double));
for(i=0;i<96;i++)
(*********************) memcpy(pData->s_Data+i*2048, m_Data[i]->data, 2048*sizeof(double)); (*******************)
memcpy(pData+96*2048, time, 7*sizeof(double));
VERIFY( UnmapViewOfFile( (LPCVOID)lpMem ) );
}
这是为什么?我该怎么办啊?
大侠们帮帮我把
// GetLastError() must be ERROR_ALREADY_EXISTS !!!
if ( hFileMapping == NULL )
{
MessageBox( "shared memory create failed!" );
}
else
{
LPVOID lpMem;
lpMem = MapViewOfFile( hFileMapping,FILE_MAP_ALL_ACCESS,0, 0,ALLOCSIZE );
if ( lpMem == NULL )
{
MessageBox( "can not get the shared memory pointer!!" );
CloseHandle( hFileMapping );
}
else
{
sData *pData = (sData*)lpMem;
memset(pData, 0, (2048*96+7)*sizeof(double));
for(i=0;i<96;i++)
(*********************) memcpy(pData->s_Data+i*2048, m_Data[i]->data, 2048*sizeof(double)); (*******************)
memcpy(pData+96*2048, time, 7*sizeof(double));
VERIFY( UnmapViewOfFile( (LPCVOID)lpMem ) );
}
这是为什么?我该怎么办啊?
大侠们帮帮我把
{
double s_Data[2000];
};
#define ALLOCSIZE sizeof(2048*96*sizeof(double))
应该不小了,但是到了
memcpy(pData->s_Data+i*2048, m_Data[i]->data, 2048*sizeof(double));
这句系统就报错
系统提示:
Unhandled exception in Das.exe (MSVCRTD.DLL): 0xC0000005 Access Violation
怎么办啊?
谢谢了