在VC中 可以直接调用资源中的EXE文件吗?

在VC中 可以直接调用资源中的EXE文件吗?,第1张

在vc中调用一般的.exe很简单,用一个函数就可以了:

WinExec("D:\\Path\\Path\\XXX.exe",1)

或者是:ShellExecute((HWND)GetParent(),"open","D:\\Path\\Path\\XXX.exe",NULL,NULL,SW_SHOWNORMAL)

(如果要具体了解这两个老锋函数请求助于msdn!)

但扮卖是在调用由Matlab生成的.exe时,必须侍缺晌要先设置成当前路径,用到下面的函数:

SetCurrentDirectory("D:\\Path\\Path")

至于为什么我也不清楚,请知道的各位大虾给指点一下!o(∩_∩)o...

我用的是VC

但是贺仿宴那用的是.cpp的文件

如果大坦是.cpp的文件的话

直接打不开的

可以用那个vc的应用程序(就是你新建文件的时候用的那个)打开

然后浏览找禅银到你想要打开的文件就可以了

【1】定义头文件

必须定义以下两个头文件:

#include <shlobj.h>// 可替换为 windows.h

#include <shellapi.h>

如果定义了头文件 #include <windows.h>的话就不必定义 #include <shlobj.h>了。

【2】定义路径

C++中所表示的路径要用 " // "而不是平常所用的" / ",所以以上三个函数表示路径都为:disk://Directory//...//File name

WinExec("D://Program Files//Test//Test.exe",SW_SHOWMAXIMIZED)

ShellExecute(NULL,"open","C://Test.txt",NULL,NULL,SW_SHOWNORMAL)

1、调用API: int system( const char *command )

你可以传入一命令,启动某个程序。如"ping www.vccode.com", "YourExe"等等

不过这里有几点要值得注意:

(1)、他不蚂缓会立即返回,直到你启动的程序执行完成。

(2)、如果你启动是windows程序,它仍然会启动一个控制台,这就给人感觉太差劲了,但如果本身是控制台的,而且又需要等待它的完成,那这将是比较好的选择。

(3)、它的返回值代表是否执行成功以及程序的退出码。

(4)、不能运行*.txt文件或"丛物穗www.baidu.com"

2、调用API:

UINT WinExec(

 LPCSTR lpCmdLine, // command line

 UINT uCmdShow // window style

)

这个API与API:system同样的使用简单,同用是使用命令行型式。

不过它与API:system相比,有几个优点:

(1)、它将启动了一个新进程,并且立即返回,因此你的程序无需等待。

渗卜(2)、它的多了一个参数:uCmdShow,通过它你可以一定程度上控件窗体的显示,比如让它后台运行而不显示出来。

(3)、它无论启动控制台程序还是windows程序都只做你想要做的事。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12555337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存