Error no manejado con CreateProcess [duplicado]
Esta pregunta ya tiene una respuesta aquí:
El método CreateProcess termina con un error 1 respuestaEstaba leyendo acerca de la función CreateProcess en c ++ y quería probarlo. La idea básica del código es que mi principal ejecute otro proceso (bloc de notas). En realidad, es sólo el código básico. Cuando ejecuto el programa, me sale:
Excepción de primera oportunidad en 0x752bb763 en createprocess.exe: 0xC0000005: Ubicación de escritura de infracción de acceso 0x00be57b8.
Excepción no controlada en 0x752bb763 en createprocess.exe: 0xC0000005: Ubicación de escritura de infracción de acceso 0x00be57b8.
Cuando hago un punto de ruptura para el lugar donde se produce el error, me llevan a tidtable.c (que es para acceder a subprocesos, supongo). Específicamente en tidtable.c enCRTIMP PFLS_GETVALUE_FUNCTION __cdecl __set_flsgetvalue()
Realmente no sé qué o cómo evitar este problema. El error se produce con la llamada a CreateProcess (es decir, nunca da como resultado "fuera de la creación").
Mi código es:
<code>#include "stdafx.h" #include <stdio.h> #include <windows.h> #include <strsafe.h> #include <direct.h> #include <string.h> #include <conio.h> int main(VOID) { STARTUPINFO si; PROCESS_INFORMATION pi; //allocate memory ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); fprintf(stderr, "This is just a test"); //create child process if (!CreateProcess(NULL, L"C:\\Windows\\Notepad.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { fprintf(stderr, "create process failed"); return -1; } fprintf(stderr, "out of create"); //parent waits for child to complete WaitForSingleObject(pi.hProcess, INFINITE); fprintf(stderr, "after wait"); printf("Child Complete"); //close handle CloseHandle(pi.hProcess); // CloseHandle(pi.hthread); } </code>
Si alguien sabe cómo superar este problema, agradeceríamos su ayuda.