首页
社区
课程
招聘
[求助]dll里调用cmd的命令行如何去掉dos窗口?
发表于: 2013-2-5 18:57 6152

[求助]dll里调用cmd的命令行如何去掉dos窗口?

2013-2-5 18:57
6152
dll中调用了cmd命令行,在编译dll的时候我加了#pragma comment( linker, "/subsystem:\"windows\" /entry:\"DllMainCRTStartup\"" ) 可是在调用dll的时候还是会出现一闪的dos窗口。调用这个dll 的工程我不能控制,是不是要调用dll的工程也要设置成Windows (/SUBSYSTEM:WINDOWS)而不能是控制台的?

当然通过createprocess的方法可以解决,但是比较复杂一点,大家有没有比较简单的方法解决这个问题。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1392
活跃值: (5212)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
使用system("命令参数")
2013-2-6 08:26
0
雪    币: 31
活跃值: (48)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
肯定不是二楼说的那样啦,想隐藏控制台窗口,只需要重定向其输入输出等句柄,CreateProcess有参数可以设置。
2013-2-6 08:49
0
雪    币: 215
活跃值: (90)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
用FreeConsole即可
FreeConsole
The FreeConsole function detaches the calling process from its console.

BOOL FreeConsole(VOID)
2013-2-6 09:00
0
雪    币: 3292
活跃值: (3341)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
但是如果他打印输出的地方没做对象半段的话,估计你就悲催了,一路崩溃到底
2013-2-6 09:03
0
雪    币: 1753
活跃值: (890)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
6
WinExec("xxxx",SW_HIDE);
不就行了!!!
或者CREATEPROCESS也行·!
2013-2-6 12:03
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
winexec即可
前提是只是调用下命令行 而无需获取反馈
2013-2-12 15:51
0
游客
登录 | 注册 方可回帖
返回
//