我试图通过CreateProcess()在Sublime Text中打开一个文件,但构建显示错误

时间:2016-06-28 12:52:55

标签: c++ windows winapi

STARTUPINFO         siStartupInfo;
PROCESS_INFORMATION piProcessInfo;

memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));

siStartupInfo.cb = sizeof(siStartupInfo);

if (CreateProcess("C:\\Program Files\\SublimeText2\\sublime_text",              
   " source.cpp",                       
    NULL,
    NULL,
    FALSE,
    CREATE_DEFAULT_ERROR_MODE,
    NULL,
    NULL,
    &siStartupInfo,
    &piProcessInfo) == FALSE)


    WaitForSingleObject(piProcessInfo.hProcess, INFINITE);


::CloseHandle(piProcessInfo.hThread);
::CloseHandle(piProcessInfo.hProcess);

我正在尝试通过CreateProcess在Sublime Text中打开一个文件,但构建显示以下错误:

  1.   

    类型" const char *"的参数与" LPWSTR"。

    类型的参数不兼容
  2.   

    类型" const char *"的参数与#34; LPWCSTR"类型的参数不兼容

  3.   

    ' BOOL CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION)':不能转换参数1来自' const char [32]& #39;到LPCWSTR'

1 个答案:

答案 0 :(得分:1)

LPWSTR L ong P ointer to W ide STR ing)是{ {1}},而不是wchar_t*。您有3个选项可以解决问题:

  1. 不要使用char* #defined。
  2. 进行编译
  3. 使用UNICODE
  4. 更改调用以使用宽字符串常量,并明确调用函数的CreateProcessA版本,如:

    W
  5. 在这三个中,第三个选项是您应该使用的选项。