Я использую этот код, но я получаю сообщение об ошибке: 2 Я знаю, что это означает, что файл не существует, но не знаю, что делаю неправильно.Ошибка C++ CreateprocessA Ошибка
DWORD size = 1024;
TCHAR buff[1024];
int err = AssocQueryString(ASSOCF_INIT_IGNOREUNKNOWN, ASSOCSTR_EXECUTABLE, _T(".html"), NULL, buff, &size);
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
LPCSTR BrowLoc = (LPCSTR)buff;
if (!CreateProcessA(BrowLoc, // No module name (use command line)
NULL,
NULL, // Process handle not inheritable
NULL, // Thread handle not inhberitable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi) // Pointer to PROCESS_INFORMATION structure
)
{
printf("CreateProcess failed (%d).\n", GetLastError());
getchar();
return 0;
}
Какое значение имеет BrowLoc? – NineBerry
Вы ориентируетесь на Unicode? И почему вы все еще используете TCHAR? Вам действительно нужно поддерживать Windows 98? –
@NineBerry BrowLoc имеет местоположение файла для открытия. LPCSTR BrowLoc = (LPCSTR) buff; – MegRay