从 MFC(c++) 应用程序启动的可执行 jar 中获取返回值
Get the return value from executable jar launched from MFC(c++) Application
我正在开发一个项目,我正在启动一个jar文件。我想要该jar文件的返回值。我在网上冲浪,得到了一个线索,可以从启动它的程序中读取System.exit(n);
。我也开始知道我可以使用 shell 脚本来阅读它。但是我完全不知道如何编写 shell 脚本。我是MFC(C++)的新手。用于启动 jar 文件的代码如下所示。
void CDropboxSync::OnBnClickedDbxPcToCloud()
{
STARTUPINFOW siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
SetCursor(LoadCursor(NULL, IDC_WAIT));
if (CreateProcess(m_csJrePath, TEXT(" -jar DbxUpldDwnld.jar u"), NULL, NULL, false, CREATE_NO_WINDOW, NULL, NULL, (LPSTARTUPINFOA)&siStartupInfo, &piProcessInfo) == false) {
AfxMessageBox(_T("Please install Java Runtime Environment(JRE) on your PCn Or JRE not found on given path in INI File."), MB_ICONERROR);
CloseHandle(piProcessInfo.hProcess);
CloseHandle(piProcessInfo.hThread);
return;
}
CloseHandle(piProcessInfo.hProcess);
CloseHandle(piProcessInfo.hThread);
// TODO: Add your control notification handler code here
}
那么从这里如何从 JAR 文件中获取返回值。所有的专家请帮助我。提前谢谢。
我认为你不应该混合使用shell脚本和MFC。您从程序启动了该过程,可以调用:
DWORD exitStatus;
CreateProcess(...)
...
WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(piProcessInfo.hProcess, &exitStatus);
以获取已启动进程的退出代码。在致电之前,请务必致电此电话CloseHandle(piProcessInfo.hProcess);
确实,也许您会发现将要启动的进程包装在 shell 脚本中更方便,但这对您的 MFC 代码没有任何影响。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 在现有的C++可执行项目CMAKE中构建Apache Arrow
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 从 MFC(c++) 应用程序启动的可执行 jar 中获取返回值
- 从c++代码运行一个可执行的jar