Я должен сделать простую программу с Visual Studio, используя Windows API.Мой код хорошо работает в режиме отладки, однако, он не работает хорошо в режиме выпуска, и я не мог понять, почему.Я вырезал и вставил часть, где моя программа потерпела крах.Вот эта часть.
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <windows.h>
int _tmain(int argc, TCHAR * argv[])
{
TCHAR cmdString[] = "notepad.exe";
STARTUPINFO si = { 0, };
PROCESS_INFORMATION pi;
si.cb = sizeof(si);
BOOL ret = TRUE;
CreateProcess(NULL, cmdString, NULL, NULL, TRUE,
CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
_tprintf(_T("Error = {%d}\n", GetLastError()));
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
system("pause");
return 0;
}
Простая программа, которая открывает notepad.exe, верно?Хорошо работает в режиме отладки, но блокнот не открывается в режиме выпуска (программа заканчивается без открытия notepad.exe).
Я пытался найти решение в SO, например, эта ссылка , но мне это мало помогает.
Почему CreateProcess () не работает должным образом в release-режим