Ошибка функции CreateProcess

Я пытаюсь запустить процесс из моего кода с помощью функции createprocess. Командная строка в порядке, и другой exe, я могу запустить его без проблем из Visual Studio.

Когда я пытаюсь запустить его из другого процесса с помощью createprocess, он выдает мне сообщение — Ошибка времени выполнения. Это приложение запросило среду выполнения, чтобы завершить его необычным способом.

В чем может быть проблема ? Как я мог удалить эту проблему?

        STARTUPINFO si;
PROCESS_INFORMATION pi;

bool bResult;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

//Cast System::String* __gc to char*
char* chAppName = (char*)(void*)Marshal::StringToHGlobalAnsi(AppName);
char* chCmdLine = (char*)(void*)Marshal::StringToHGlobalAnsi(CmdLine);//Start the child process.
bResult = CreateProcess( chAppName,   // No module name (use command line)
chCmdLine,        // Command line
NULL,           // Process handle not inheritable
NULL,           // Thread handle not inheritable
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

0

Решение

Попробуйте устранить StringToHGlobalAnsi звонки и жесткое их кодирование вместо первого. Если это останавливает проблемы, мы можем разобраться StringToHGlobalAnsi звонки.

0

Другие решения

Других решений пока нет …