我制作了2个通过映射文件进行通信的Visual Studio项目。但我必须单独启动它们:首先启动A,运行它(它将创建映射文件并用信息填充它)。然后我必须启动B,它将读取文件并打印其中的任何内容。当然,关闭A和运行B将不起作用(B将找不到映射文件,因为只有在A运行时它才在内存中。)
我的问题是:有没有办法通过A启动项目B,而不需要手动运行项目B?
答案 0 :(得分:0)
不是手动启动A而是B启动,您应该只手动启动程序A并让程序A使用CreateProcess函数启动程序B:
STARTUPINFO startupinfo ;
startupinfo.cb = sizeof (startupinfo) ;
PROCESS_INFORMATION pinfo ;
memset(&startupinfo, 0, sizeof (startupinfo)) ;
bool success = CreateProcess("b.exe", NULL, NULL, NULL, false, NORMAL_PRIORITY_CLASS,
NULL, NULL, &startupinfo, &pinfo) ;