一个WIN32进程创建共享内存,并放入一个结构体,一个RTSS进程打开共享内存,并把地址给结构体,运行之后共享内存创建成功,但是没有读到数
这是win32进程
#include
#include
#include
typedef struct{
char data1[20];
float data2;
}TEST;
int main(void)
{
HANDLE hSHM = NULL;
static PVOID location;
static char smName[]="sharedmemory";
TEST test = {
"abc",
6.18
};
TEST * ptest;
if(!(hSHM = RtCreateSharedMemory( (DWORD)PAGE_READWRITE,
(DWORD)0,
(DWORD)(sizeof(TEST)),
(unsigned short )smName,
(void *)&location)))
{
printf("Can't created shared memory!\n");
}
else printf("Created shared memory success!\n");
ptest = (TEST*)location;
strcpy(ptest->data1,"avc");
ptest->data2=6.18;
getchar ();
printf("123");
return 0;
}
}
这是RTSS进程
#include
#include
#include
typedef struct{
char data1[20];
float data2;
}TEST;
int main(void)
{
HANDLE hSHM = NULL;
static PVOID location;
char smName[]="sharedmemory";
TEST test;
TEST *ptest;
if(hSHM = RtOpenSharedMemory(SHM_MAP_READ,FALSE,smName,ptest) == 1)
{
printf("Cloud not open the sharedmemory:");
return 1;
}
printf("%s\n",ptest->data1);
printf("%f\n",ptest->data2);
getchar();
return 0;
}