程序无法运行 - 它会打开和关闭

use*_*146 0 c c++ winapi visual-studio

我的主程序有一个问题,在运行程序后我打开的所有调用之后它才打开然后关闭.它在我的代码或任何东西中都没有发现任何错误,所以我尝试创建一个新项目并且它做同样的事情没有错误.

我甚至试过示例代码:

int APIENTRY WinMain (HINSTANCE ...)
    ShellExecute(NULL, (LPCWSTR)"open", (LPCWSTR)"cmd.exe", NULL, NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

它仍然只是打开和关闭.这是什么问题?如有必要,我可以提供输出日志,但我不知道.

Dav*_*nan 5

我不确定我理解你打开和关闭的意思.但是这段代码非常错误:

ShellExecute(NULL, (LPCWSTR)"open", (LPCWSTR)"cmd.exe", 
    NULL, NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

演员表演并不好.两个字符串文字是指向数组char铸造他们const wchar_t*不会改变它们是什么.它只是要求编译器相信你比它更了解.你没有.他们真的不是const wchar_t*.您的所有演员表现都是为了让您打破类型安全并将信息丰富的编译时错误转换为神秘的运行时故障.在你对语言有深刻理解之前,你应该避免施法.

你需要使用宽文字:

ShellExecute(NULL, L"open", L"cmd.exe", NULL, NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

您似乎也没有进行错误检查.这很难ShellExecute.尝试ShellExecuteEx改为注意它返回的值.