C++ C++;vs表单应用程序启动命令

C++ C++;vs表单应用程序启动命令,c++,forms,C++,Forms,我想在您单击按钮时启动cmd。这是我当前的代码: Process::Start("cmd"); ProcessStartInfo processtartinfo = new ProcessStartInfo; processtartinfo.Arguments = "/C help"; processtartinfo.WindowStyle = ProcessWindowStyle::Hidden; processtartinfo.FileName = "CMD.exe"; Process::

我想在您单击按钮时启动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”不能用于此引用类型。改用“gcnew”

和(在“ProcessStartInfo”上):

错误C2664:'System::Diagnostics::ProcessStartInfo::ProcessStartInfo(常量System::Diagnostics::ProcessStartInfo%)':无法将'System::Diagnostics::ProcessStartInfo'的参数1转换为'System::Diagnostics::Process^'

和(关于“流程::启动”):

错误C2665:“System::Diagnostics::Process::Start”:通过6个重载都不能转换所有类型的参数*

如何解决这个问题? (如果我使用gcnew,则在“new”上显示错误)

上面的语句无效,当您使用“new”时,对象应该是指针

ProcessStartInfo* processtartinfo = new ProcessStartInfo(); 
会更有意义

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

在此情况下,您应该使用(^)这样的句柄:(托管C++语法)


您正在编写C#代码,而不是C++/CLI代码。知道什么时候使用帽子是非常非常重要的。花一天的时间学习一些基础知识,这将为你(和我们)节省很多时间。我认为C++会更类似于C…
ProcessStartInfo* processtartinfo = new ProcessStartInfo(); 
ProcessStartInfo^ processtartinfo = gcnew ProcessStartInfo();