char *与C ++的LPWSTR参数不兼容

时间:2018-11-01 14:35:28

标签: c++ winapi char

  

char *与LPWSTR的参数不兼容

void ConnectToEngine(char* path)
{

    pipin_w = pipin_r = pipout_w = pipout_r = NULL;
    sats.nLength = sizeof(sats);
    sats.bInheritHandle = TRUE;
    sats.lpSecurityDescriptor = NULL;

    CreatePipe(&pipout_r, &pipout_w, &sats, 0);
    CreatePipe(&pipin_r, &pipin_w, &sats, 0);

    sti.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    sti.wShowWindow = SW_HIDE;
    sti.hStdInput = pipin_r;
    sti.hStdOutput = pipout_w;
    sti.hStdError = pipout_w;

    CreateProcess(NULL, path, NULL, NULL, TRUE, 0, NULL, NULL, &sti, &pi);
}

还有其他解决方法吗?

1 个答案:

答案 0 :(得分:1)

是的,是的。

如果您坚持使用char*参数,请调用CreateProcessA而不是CreateProcess。否则,也将path设为LPWSTR,并将您的程序带入千禧年。