我正试图用CreateProcess(...)
启动进程calc.exe。
当我建立我收到了错误的解决方案:
'STARTUPINFO':未声明的标识符由于构建错误而无法使用CreateProcess:'STARTUPINFO':未声明的标识符
我不理解为什么。
该错误仅在构建解决方案和定义变量时出现。
当它出现的变量按F12:
也许这关系到#ifdef UNICODE
?
全码:
// CppConsoleApp.cpp : Defines the entry point for the console application.
//
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include "stdafx.h"
int main()
{
STARTUPINFO info;
PROCESS_INFORMATION processInfo;
ZeroMemory(&info, sizeof(info));
info.cb = sizeof(info);
ZeroMemory(&processInfo, sizeof(processInfo));
LPCWSTR path = L"C:\\Windows\\System32\\calc.exe";
if (!CreateProcess(path, NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
printf("CreateProcess failed (%d).\n", GetLastError());
}
WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
return 0;
}
使用'/ showIncludes'cl选项来查看,实际包含哪些文件。检查该文件,其中包含“STARTUPINFO”。看,这是在一些'#if'块中定义的。检查你是否在这个模块 – RbMm
阅读MSDN页面_ [STARTUPINFO](https://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v = vs.85).aspx)_ – ryyker
@ryyker - 那又如何? – RbMm