一直在尝试从我的 Visual Studio C++ 应用程序中调用 Truecrypt exe,但CreateProcess
无法正常工作。GetLastError()
显示127
。目标是在不显示命令窗口
的情况下调用 exe 。请帮忙。我试过搜索并阅读CreateProcess 参数说明。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include<Windows.h>
int main( void )
{
HANDLE StdInHandles[2];
HANDLE StdOutHandles[2];
HANDLE StdErrHandles[2];
CreatePipe(&StdInHandles[0], &StdInHandles[1], NULL, 4096);
CreatePipe(&StdOutHandles[0], &StdOutHandles[1], NULL, 4096);
CreatePipe(&StdErrHandles[0], &StdErrHandles[1], NULL, 4096);
STARTUPINFO si; memset(&si, 0, sizeof(si)); // zero out
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = StdInHandles[0]; // read handle
si.hStdOutput = StdOutHandles[1]; // write handle
si.hStdError = StdErrHandles[1]; // write handle
PROCESS_INFORMATION pi;
std::cout<< CreateProcess("\"C:\\Program Files\\TrueCrypt\\cmd.exe\\TrueCrypt.exe\"", " //b" , NULL, NULL, FALSE, CREATE_NO_WINDOW , NULL, NULL, &si, &pi)<< "\n" << GetLastError() << "\n";
std::cin.get();
}