内存读数出乱码怎么处理
内存读数出乱码怎么办
当用
结果是
当用
结果是
当调试时发现hview的内存里存的是
大家看看这个该怎么搞,才能正确显示传入的数字呢?我各种试了都不成功。。。。
------解决方案--------------------
-->
试试
//这是发送函数
bool sendnum(char* x,int len)
{
HANDLE hmap;
LPCTSTR hview;
hmap=CreateFileMapping(INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
0x4,
"sharenum");
if (hmap==NULL)
{
printf("创建内存映射失败\n");
return FALSE;
}
hview=(LPCTSTR)MapViewOfFile(hmap,FILE_MAP_ALL_ACCESS,0,0,0);
if (hview==NULL)
{
printf("获取内存地址失败\n");
}
memcpy((void *)hview,(void *)x,len);
UnmapViewOfFile(hview);
return true;
}
int main()
{
int n=23;
char ss[256];
sprintf(ss,"%d",n);
Sleep(10000);
while (1)
{
system("cls");
printf("sending...\n");
sendnum((char *)&(n),sizeof(n));
}
system("pause");
return 0;
}
//这是接收代码
HANDLE hmap;
LPCTSTR hview;
hmap=OpenFileMapping(FILE_MAP_READ,FALSE,"sharenum");
if (hmap==NULL)
{
printf("打开内存映射失败");
return NULL;
}
hview=(LPCTSTR)MapViewOfFile(hmap,FILE_MAP_READ,0,0,0);
if (hview==NULL)
{
printf("获取映射文件地址失败");
return NULL;
}
char x[256];
sprintf(x,hview);
int s=(int)&x;
printf("%d\n",s);
UnmapViewOfFile(hview);
当用
printf("%d\n",s);
结果是
当用
printf("%s\n",x);
结果是
当调试时发现hview的内存里存的是
大家看看这个该怎么搞,才能正确显示传入的数字呢?我各种试了都不成功。。。。
------解决方案--------------------
char x[256];
sprintf(x,hview);
int s=(int)&x;
printf("%d\n",s);
-->
int s=*(int*)hview;
printf("%d\n",s);
试试