【发布时间】:2017-10-04 05:42:25
【问题描述】:
我尝试做的是:通过另一个 c++ 程序在 Windows 上启动一个外部 .exe 文件(从 fortran 编译)
我试过很多不同的版本,比如:
system("C:/IPSE_temp/CEA_schwing.exe");
编译没问题,但是当我执行文件时,他错过了一些库,例如 RUND32.dll...
然后我尝试在不同的变体中使用这种代码(CreateProcess)
std::string rt = "C:/IPSE_temp/CEA_schwing.exe";
STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
if (CreateProcess(NULL, (LPWSTR) rt.c_str(), NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo);)
{
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
因为我也想知道,程序何时完成(程序应该等到外部 .exe 完成它的工作)。编译没问题,但他从不运行.exe
我希望我在描述中没有跳过任何内容,我期待您的帮助。提前致谢
是的,我是 C++ 编程新手;)
最好的问候
感谢 Barmak Shemirani,该程序现在正在运行。
不幸的是,还有一个额外的错误:
我的 CEA_schwing.exe 正在从同一目录读取文件“SINGLE_TP.inp”。这工作正常,我通过 Windows 资源管理器运行 die exe。
但是通过我的 c++ 程序运行 .exe,他再也找不到文件了。有谁知道他为什么不再得到文件了吗?
【问题讨论】:
标签: c++ winapi createprocess