我在两个进程间通过创建文件映射的方式实现数据的传输,但是我要传输的是一个结构体,结构体定义如下:
typedef struct
{
int x;
int y;
HDC p_hImageDC;
HBITMAP p_hBitmap;
}ImageMsg , *pImageMsg;请问我怎么样传输和接收数据啊?请大侠帮帮忙,谢谢!
typedef struct
{
int x;
int y;
HDC p_hImageDC;
HBITMAP p_hBitmap;
}ImageMsg , *pImageMsg;请问我怎么样传输和接收数据啊?请大侠帮帮忙,谢谢!
解决方案 »
- 请教一个虚拟助手的思考方向,
- winform office插件项目打包
- vc++如何实现无进程式线程插入穿越防火墙
- SetWindowLong的问题
- View类中WM_HSCROLL消息的相应函数问题!
- 请问onPaint 和 ondraw 有什么区别 各位高手帮助一下
- ADO里面的那些“PROVIDER=..,UID=...PSWD=...”这些东西怎么写啊?应该有现成的吧
- 一个关于SOCKET奇怪的问题
- 几个星期过去了,feng 乖乖小鹿...你们这些高手的兄弟们这回要吃惊了......
- 怎样向Word发送Ctrl+V的键盘消息?
- windows循序渐进这本书,进城线程部分的实例创建时使用哪种类型的项目
- 请教我的电脑能上网但是qq和qq游戏登陆失败,提示 端口检测失败,怎么办呀?
hRecvMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE | SEC_COMMIT, 0, 1000000, "DataMap");
if (hRecvMap != NULL)
{
lpData = (pImageMsg)MapViewOfFile(hRecvMap, FILE_MAP_WRITE, 0, 0, 0);
if (lpData == NULL)
{
CloseHandle(hRecvMap);
hRecvMap = NULL;
return FALSE;
}
}
lpData->p_hBitmap=imageMsg.p_hBitmap;
lpData->p_hImageDC=imageMsg.p_hImageDC;
lpData->x=imageMsg.x;
lpData->y=imageMsg.y;望大家指点!
我不太熟悉文件映射
之所以说不行, 是因为结构体里面含有HDC, HBITMAP这样的东西, 相当于指针了, 通过文件映射, 指针再另一个进程有意义了, 但是指针指向的内存却没意义了,有点像浅拷贝, 哈, 不知道这不说的清楚。
至于什么方法可行, 我也不知道啦,抱歉