在Windows服务中创建的共享内存,在其它exe程序中不能打开。请帮忙解决,多谢!
解决方案 »
- 用vs2010时,打开mfc程序就会出现下面问题
- 求com应用的小例子@
- installshield无界面安装程序
- ::::::::::::关于系统托盘弹出MENU后不能自动销毁问题,:::::难
- 在基于文档视图的MFC结构中如何在鼠标旁出现一个框以显示当前鼠标的位置.
- 高分请教,如何在只使用Win API(不使用MFC类)socket通讯情况下,知道有数据到达,需要接收。
- 请问在VC中gettimeofday怎么使用,该系统调用的头文件是什么
- 用VC使用ADO连接数据库,有没有事件操作呀
- 启动其他程序问题?
- COM高手看过来...
- 关于http digest(摘要)认证编程问题
- 如何在FlexGrid中画圆形位图
因为VISTA改了些东东。刚好会影响服务与用户进程间的通信。
如果不是,贴代码。
服务和其它exe都调用如下的函数,exe先运行,双方能够通过共享内存交互信息,但如果服务先运行,则在exe侧报告共享内存打开失败。
HANDLE OpenShareMemory()
{
HANDLE hShareFile;//内存映射句柄 //打开共享内存映射
hShareFile=OpenFileMapping( FILE_MAP_READ|FILE_MAP_WRITE,
FALSE,SHAREMEMORYNAME);
if(hShareFile == NULL)
{
hShareFile = CreateFileMapping( INVALID_HANDLE_VALUE,
NULL, PAGE_EXECUTE_READWRITE, 0, sizeof(MapStruct), SHAREMEMORYNAME);
}
return hShareFile;
}
vista下由于有session的问题,如果createservice传递的安全性参数是NULL让系统使用默认值的话会无法正常运行的。但是据说管道还是可行的。这两天正在被vista折磨,2000,Server2003,XP都正常的在vista下就是无法运行,唉~