C++ 为什么命令不';不执行?

C++ 为什么命令不';不执行?,c++,C++,我尝试对CMD执行命令,但不起作用 包括: #include <Windows.h> #include <processthreadsapi.h> #include <shellapi.h> #include <stdio.h> #include <iostream> 这很有效 ShellExecute(NULL, L"open", L"cmd", L"/c notepad.exe&q

我尝试对CMD执行命令,但不起作用 包括:

#include <Windows.h>
#include <processthreadsapi.h>
#include <shellapi.h>
#include <stdio.h>
#include <iostream>
这很有效

ShellExecute(NULL, L"open", L"cmd", L"/c notepad.exe", NULL, SW_NORMAL);

不要使用强制转换来删除编译器错误。错误告诉您使用了错误的类型,请改用正确的类型。

您能解释一下您的演员阵容吗?我的意思是
LPCWSTR
。显式强制转换通常不是修复关于错误类型的编译器错误的方法。当然,您的代码可以编译,但可能无法工作。此外,命令行必须包含程序名。在这种情况下,它会认为
/c
是程序名,不会起作用,因为
/c
会作为实际参数丢失。您可以传递
NULL
而不是应用程序(或将其保留为
cmd
),然后使用
cmd/c notepad.exe
作为命令行。但是,我完全不明白为什么您要使用CMD-直接运行
notepad.exe
。我认为您的函数
ShellExecute
无法获得
wchar*
而不是
char*
或以空结尾的字符串。强制转换为某个正确的字符串类型(char*或不执行任何操作),它将工作一个错误在这里
(LPCWSTR)“/c notepad.exe”
当您必须强制转换字符串类型时,您几乎总是做错误的事情。改用
L”/c notepad.exe“
。相关的:
ShellExecute(NULL, L"open", L"cmd", L"/c notepad.exe", NULL, SW_NORMAL);