懂vc++的请进

来源:百度知道 编辑:UC知道 时间:2024/05/25 18:14:01
有两个独立的vc++程序,其中有一个输出数值的 现在想把这些数值调入到另一的vc++的程序中 要怎么弄
不好意思 帮下 说的太简单了不懂 可以加我qq么286979572感激不尽

这需要创建命名的共享内存,思路如下:
其中一个程序在内存中创建创建一块命名的共享内存,然后创建者可以向这块内存中写入数据,而另一个程序可以用那个名字打开这块共享内存,读取里面的数据。

我曾经写过的代码如下:

//////////////////
//以下的代码在两个或多个程序中都要有,只不过最终的操作处的代码是不同的。
///////////////////
char chrName[] = {"tempname"}; //共享内存的名字 任意起
DWORD size = 200;
HANDLE hMap;
hMap = OpenFileMapping(FILE_MAP_ALL_ACCESS, TRUE, chrName); //试图打开名字叫"tempname"的共享区,
if(!hMap)
{ //如果打开失败 那么创建这个名字的共享区 在我记忆中空间大小必须是4的倍数 所以后面*4 万无一失阿
hMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size*4, chrName);
}

LPBYTE lpData = NULL; //本地的一个地址 用于获得可用的共享空间的首地址
if(hMap != NULL)
{
lpData = (LPBYTE)MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); //将共享区的句柄影射成本地的一个地址
}
if(NULL != lpData)
{
//这里是你的代码 可以做读写操作.......
}