我要初现的功能是:
客户端A到将其收到的数据提供给另一客户端软件B,
初步的想法是:建立一个DLL,在这DLL中创建映射文件,客户端调用这个DLL往这映射文件写数据。而要让B能从出查找数据。
但在具体的实现上,没啥头绪,现请教各位大虾们
客户端A到将其收到的数据提供给另一客户端软件B,
初步的想法是:建立一个DLL,在这DLL中创建映射文件,客户端调用这个DLL往这映射文件写数据。而要让B能从出查找数据。
但在具体的实现上,没啥头绪,现请教各位大虾们
解决方案 »
- CFileStdio读取文件问题?
- 用CFtpConnection类连接FTP服务器,如何判断已经与服务器断开连接?
- 立方体直线提取,该怎么做?
- 能不能实现在IE地址栏中显示的是一个URL1,而在浏览器中显示的是另一个URL2?
- 请教 如何让对话框中的radio初始处于选中状态
- 哪里有特别简单的ado数据库的程序源码啊?
- 轮询、侦听和回调这三种处理方式有什么区别。
- 在c++中用什么函数可以控制浮点数的位数?
- 假如要开发游戏是否VC++最好呢!!!???!!!
- !!!!!!!!!!!!!盗取OICQ协议一份,大家看对不对!!!!!!!!!!!!!!!!!!!!!!!
- 关于NetShareEnum()
- 函数退出后如何通知线程?
http://blog.csdn.net/fengrx/archive/2009/04/13/4069088.aspx
共享内存和DLL是实现进程间通信的两种方式。
你查查使用DLL通信的文章。
不过,提示你下,我的博客里有篇文章详细的讲了进程间通信的各种方法。其中,使用DLL通信还提供了一段关键的代码。
我不能下载呀能传给我一份吗?
[email protected]
//写数据 "DataCHARGE"为内存映射文件名, 在读数据时所用的内存映射文件名应与之一致。
HANDLE hRecvMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,
PAGE_READWRITE | SEC_COMMIT, 0, LENCHARGE, "DataCHARGE");if (hRecvMap != NULL) // STUDENT* 结构体
{
STUDENT* lpData = (STUDENT*)MapViewOfFile(hRecvMap, FILE_MAP_WRITE, 0, 0, 0);
if (lpData == NULL)
{
CloseHandle(hRecvMap);
hRecvMap = NULL;
}//写入数据 此处 pCharge 结构体对象, 在执行此操作前应将你的数据值写入pCharge.
*lpData = pCharge;
UnmapViewOfFile(lpData);
lpData = NULL;//CloseHandle(hRecvMap); //退出程序时执行
///hRecvMap = NULL;
}//读数据 此处"DataCHARGE"为映射文件名, 与CreateFileMapping时的文件名一致
HANDLE m_hReceiveMap = OpenFileMapping(FILE_MAP_READ, TRUE, "DataCHARGE");if (m_hReceiveMap != NULL) // STUDENT* 为结构体
{
STUDENT* lpData=(STUDENT*)MapViewOfFile(m_hReceiveMap, FILE_MAP_READ, 0, 0, 0); if (lpData == NULL) //读出数据
{
CloseHandle(m_hReceiveMap);
m_hReceiveMap = NULL;
} //如果执行到此处, 说明数据已经读取成功。 可在此处输入 lpData 的值测试一下。
CloseHandle(m_hReceiveMap);
}