【发布时间】:2015-02-03 04:18:54
【问题描述】:
我是visual c++ 的新手,我正在练习开发非常简单的应用程序。
我还在学习,请指导我。
我正在尝试使用 Visual c++ 运行 batch file,并且需要在其后添加 arg。
String ^ arg = textBox1->Text;
system("file.bat"); // how can I add my arg here?
arg 取决于用户从文本框中输入的内容。
提前非常感谢您...
解决方案:
字符串 ^ arg = textBox1->文本; Process::Start("C:\file.bat", arg);
【问题讨论】:
-
String ^是一个 C++ .NET 习惯用法(托管字符串),您是否在 C++ 中使用 .NET 平台,如果是,您可以使用Process.Start:msdn.microsoft.com/en-us/library/… .. 吗? -
Process::Start("file.bat", arg);不工作
-
您遇到了什么错误? “不起作用”怎么办?它是否在批处理文件中,即批处理文件没有从
arg变量中接收到正确的参数,或者根本没有运行?确保当您执行Process::Start("file.bat", arg);时,您的可执行文件可以找到"file.bat".. -
正在找到批处理文件,因为我可以看到它正在运行。这个批处理文件将打开一个小的 java 程序。该程序没有输出,因为执行批处理文件时没有 arg。
-
您正在使用 .NET
String^,它是一种托管类型,并希望在system命令中将其用作char*,为此您需要对其进行编组从 .NET 类型到非托管类型(这里有一个参考:stackoverflow.com/questions/13665649/… ..)。另外,Process::Start不起作用,你说“没有 arg”,但具体是什么意思(arg变量里面什么都没有?它没有传递给file.bat)?
标签: c++ function batch-file system