C++正在执行外部进程

C++ Executing external process

本文关键字:外部 进程 执行 C++      更新时间:2023-10-16

我正在尝试从c++程序运行一个可执行文件。我已查看并找到2个选项:
系统("C:\filepath\file.exe")

ShellExecute(GetDesktopWindow(),"打开","C:\filepath\file.exe",NULL,NULL,SW_SHONORMAL)
一切都很美好,只是不起作用
对于第一个选项,除了windows.h之外,我还必须包括cstdlib,否则我的代码就无法构建
当我运行程序时,我得到错误:
"file.exe"未被识别为内部或外部命令
我已经为我的项目设置了公共语言运行时支持(/clr)选项(我还必须为运行时库设置多线程调试DLL(/MDd)选项,否则,它将无法构建)
即使包含了这两个库,第二个选项也不会生成。我收到错误:
错误C3861:"ShellExecute":找不到标识符

我在Windows7上使用VS2010,希望它能在多平台上工作

我是不是要求太多了
非常感谢。

当我运行程序时,我会得到错误:"file.exe"未被识别为内部或外部命令

如果我启动命令行提示符并键入file.exe,这就是我得到的:

Microsoft Windows [Version 6.1.7100]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:>file.exe
'file.exe' is not recognized as an internal or external command,
operable program or batch file.
C:>

您需要用双反斜杠替换反斜杠,否则编译器会将其解释为转义序列:

system("C:\filepath\file.exe");

关于ShellExecute,您需要包括Shellapi.h和Windows.h,并且不需要设置/clr标志。ShellExecute是Windows API的一部分,因此它不能在其他平台上工作。

请注意,我在问题中写道:我已经设置了公共语言运行时支持(/clr)选项。我这么做是因为之前的一个错误。
删除该选项后,我就可以运行可执行文件了。也许非托管代码必须保持非托管状态。。。