Erro não tratado com CreateProcess [duplicado]

Esta questão já tem uma resposta aqui:

O método CreateProcess acaba com um erro 1 resposta

Eu estava lendo sobre a função CreateProcess em c ++ e queria testá-lo. Idéia básica do código é fazer com que o meu principal execute outro processo (notepad). Realmente, é apenas o código básico. Quando eu corro o programa, recebo:

Exceção de primeira chance em 0x752bb763 em createprocess.exe: 0xC0000005: violação de acesso escrita localização 0x00be57b8.
Exceção sem tratamento no 0x752bb763 no createprocess.exe: 0xC0000005: violação de acesso escrita localização 0x00be57b8.

Quando eu faço um ponto de interrupção para onde o erro ocorre, eu sou levado para o tidtable.c (que é para acessar threads, eu acho). Especificamente em tidtable.c emCRTIMP PFLS_GETVALUE_FUNCTION __cdecl __set_flsgetvalue() Eu realmente não sei o que ou como evitar esse problema. O erro ocorre com a chamada CreateProcess (ou seja, nunca gera o "out of create").

Meu código é:

<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>

Se alguém souber como superar esse problema, sua ajuda será apreciada.

questionAnswers(2)

yourAnswerToTheQuestion