我正在尝试使用 VS2012 Pro 构建和运行这个程序。
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
//allocate memory
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
//create child process
if (!CreateProcess(NULL, //use command line
L"mspaint.exe", //command line
NULL, //don't inherit process handle
NULL, //don't inherit thread handle
FALSE, //disable handle inheritance
0, //no creation flags
NULL, //use parent's environment block
NULL, //use parent's existing directory
&si,
&pi))
{
fprintf(stderr, "Create Process Failed");
return -1;
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
我收到此错误:
“ConsoleApplication1.exe”(Win32):已加载“G:\workspace\VS2012\ConsoleApplication1\Debug\ConsoleApplication1.exe”。已加载符号。
“ConsoleApplication1.exe”(Win32):已加载“C:\Windows\SysWOW64\ntdll.dll”。无法找到或打开 PDB 文件。
“ConsoleApplication1.exe”(Win32):已加载“C:\Windows\SysWOW64\kernel32.dll”。无法找到或打开 PDB 文件。
“ConsoleApplication1.exe”(Win32):已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法找到或打开 PDB 文件。
“ConsoleApplication1.exe”(Win32):已加载“C:\Windows\SysWOW64\msvcr110d.dll”。已加载符号。
ConsoleApplication1.exe 中 0x763919E3 (KernelBase.dll) 处的第一次机会异常:0xC0000005:访问冲突写入位置 0x00CB586E。
ConsoleApplication1.exe 中 0x763919E3 (KernelBase.dll) 处的未处理异常:0xC0000005:访问冲突写入位置 0x00CB586E。
程序“[6992] ConsoleApplication1.exe”已退出,代码为 0 (0x0)。
请注意,我没有错误地构建它(文件 stdafx.h 包含我需要的所有标题)。
我搜索了这个错误,但找不到任何解决方案,这只是一个简单的程序,所以我无法理解这里有什么问题:(。
请帮我。