我正在尝试使用自己的带有参数的C ++ .dll代码执行.jar文件,并获取将要打印的结果字符串。不幸的是,尽管我已经尝试找到正确的导入,例如popen
或_popen
,但是代码找不到#include <stdio.h>
或#include <stdlib.h>
命令。
甚至有可能以可接受的性能从.dll执行.jar,这怎么可能?我找不到适合我的示例。
.jar文件将仅被称为java -jar test.jar "samplestring"
。键入此命令并获得结果后,控制台可以做什么?
我尝试了这个示例(问题:未定义popen和pclose): popen() writes output of command executed to cout
编辑:UWP不支持popen或_popen
现在我明白了:
STARTUPINFOW siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
if (CreateProcess(TEXT("C:\\Program Files (x86)\\Java\\jdk1.8.0_161\\bin\\java.exe"), TEXT("-jar decode.jar"), NULL, NULL, false, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &siStartupInfo, &piProcessInfo) == false) {
return -1; //Error
}
CloseHandle(piProcessInfo.hProcess);
CloseHandle(piProcessInfo.hThread);
如何获取CreateProcess命令的输出?这可能吗?