C++与Forms应用程序启动cmd

C++ vs Forms Application start cmd

本文关键字:启动 cmd 应用程序 Forms C++      更新时间:2023-10-16

我想在单击按钮时启动cmd。这是我当前的代码:

Process::Start("cmd");
ProcessStartInfo processtartinfo = new ProcessStartInfo;
processtartinfo.Arguments = "/C help";
processtartinfo.WindowStyle = ProcessWindowStyle::Hidden;
processtartinfo.FileName = "CMD.exe";
Process::Start(processtartinfo);

但它显示了这个错误(在"ProcessStartInfo"上):

错误C2750:"System::Diagnostics::ProcessStartInfo":"new"不能用于此引用类型。请改用"cnew"。

和(在"ProcessStartInfo"上):

错误C2664:"系统::诊断::ProcessStartInfo::ProcessStartInfo(const System::Diagnostics::ProcessStartInfo%

和(在"进程::启动"上):

错误C2665:"系统::诊断::进程::启动":通过6个重载中的任何一个都不能转换所有类型的参数。*

如何解决此问题?(如果我使用gcnew,它会在"new"上显示一个错误)

ProcessStartInfo processtartinfo = new ProcessStartInfo;

以上语句无效,当您使用"new"时,对象应该是指针

ProcessStartInfo* processtartinfo = new ProcessStartInfo(); 

更有意义

正如您所提到的,编译器错误C2750:"System::Diagnostics::ProcessStartInfo":"new"不能用于此引用类型。请改用"cnew"。

在这种情况下,您应该使用(^)句柄,如下所示:(托管c++语法)

ProcessStartInfo^ processtartinfo = gcnew ProcessStartInfo();