繁体   English   中英

从C ++启动独立可执行文件

[英]Launching a stand-alone executable from C++

我有一个可编程信号发生器。 它带有.inf文件和.exe文件。 双击.exe文件,运行信号发生器系统应用程序。

我想从一段VC ++代码中调用此可执行文件。 我正在使用Shell Execute,如下所示。

std::string app = "C:\gen.exe";
ShellExecute(NULL,"open",NULL,app.c_str(),NULL,SW_SHOWNORMAL);

但是,不是启动可执行文件,而是弹出命令打开文件对话框。

在对ShellExecute进行进一步试验后,我注意到ShellExecute可用于Program Files目录中的可执行文件,但是当我拥有独立的可执行文件时(例如上述情况),它将失败。 有人可以解释一下如何使用VC ++启动位于磁盘随机目录中的独立可执行文件吗?

通过独立可执行文件,我的意思是应用程序的二进制分发版只是一个可执行文件,以及几个其他文件。 我可以通过双击该可执行文件来启动它,但是,我不能使用ShellExecute来启动它。

如果您看一下ShellExecute的文档( link ),似乎您在错误的参数中可能引用了app 第四个参数是parameters参数-不是指定要打开/运行哪个文件的参数。 所以基本上,这应该工作:

std::string app = "C:\\gen.exe";
ShellExecute(NULL,"open",app.c_str(),NULL,NULL,SW_SHOWNORMAL);

或者,您可以使用CreateProcesssystem("C:\\\\gen.exe"); 我应该指出,这些选项都不能移植到其他OS,但是运行一个程序可能不会,但是最终还是要这样做,因为大多数OS的运行方式(甚至是程序)都不相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM