C++正在执行外部进程
C++ Executing external process
我正在尝试从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)选项。我这么做是因为之前的一个错误。
删除该选项后,我就可以运行可执行文件了。也许非托管代码必须保持非托管状态。。。
- boost::进程间消息队列引发错误
- 可以从外部进程[C /Windows]移动/调整Windows
- 外部进程与线程和数据处理
- 从导致问题的java进程附加到外部c++进程
- 使用SetParent将窗口嵌入外部进程的各种问题
- 是否可以从外部进程注入和执行应用程序
- QT启动外部进程(激发并忘记)
- 将外部进程的输出管道传输到正在运行的脚本C++
- C++正在执行外部进程
- 从Qt程序运行外部进程,有一些更改
- 以编程方式限制外部进程资源
- 访问外部进程的内存
- 确定外部进程的主线程id (ReadProcessMemory - Err 299)
- 使用exec/fork运行外部进程
- 执行属于其他进程的外部功能
- 绕道 外部进程中的钩子"empty"功能不起作用
- 捕获外部进程的工作目录[Qt/WinAPI]
- 我可以使用DuplicateHandle使用外部进程的句柄吗
- 在c++的同一进程空间内执行外部可执行文件
- 从外部进程以编程方式更改WxWidget滑块