MFC之调用EXE

现在有一个EXE游戏BOX.exe(推箱子游戏),放在E盘的BOX文件夹下。然后新建MFC基于对话框应用程序,双击确定按钮,进入消息处理函数OnOK,编辑代码如下:

void CCREATE_PROCESS_DEMODlg::OnOK()

{

STARTUPINFO si;

PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );

si.cb = sizeof(si);

ZeroMemory( &pi, sizeof(pi) );

if(!CreateProcess(TEXT("E:\\BOX\\BOX.exe"), NULL, NULL, NULL,FALSE,0, NULL, NULL, &si, &pi))

{

MessageBox("没有找到","Title",MB_OK);

}

WaitForSingleObject( pi.hProcess, INFINITE );

CloseHandle( pi.hProcess );

CloseHandle( pi.hThread );

::MessageBox(NULL,"回到了主程序","正常返回",MB_OK);

CDialog::OnOK();

}

打开外部得exe程序,退出后又回到了主程序继续执行。


我来说下吧,你的那个a.exe应该调用API函数CreateProcess(“myproc.exe”,“1”,...);
后面的参数我就不填写了,你自己看下MSDN然后填写吧!就说下这个API吧,主要功能是启动一个子进程,第一个参数是你的可执行程序文件名,我这里就写了myproc.exe,你最好写完整路径;第二个参数是命令行参数;这样a.exe会启动myproc.exe,同时传入1为命令行参数;
下来myproc.exe可以通过GetCommandLine()和CommandLineToArgvW()来获得这个命令行参数。具体API怎么用去看下MSDN吧,就不细说了,很简单!!



猜你喜欢

转载自blog.csdn.net/qq_35703954/article/details/58638038
今日推荐