谢谢!望高手指点!
24 个解决方案
#1
WinExec("cmd /c dir",SW_HIDE);
#2
学习,MARK
#3
谢谢,请问这句应该加在程序的什么地方呢?
#4
网上说有用#pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")来解决的,可是试了几次都不成功,什么原因呢?
#5
在VC6新建Win32 Application、a simple application
// tmp.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
WinExec("cmd /c dir c:\\new\\*.txt >c:\\new\\txtlist",SW_HIDE);
return 0;
}
测试通过。
不过在DLL里面调用不知道有没有问题。
#6
#7
学习了!
#8
谢谢!我运行环境是vs2008,按照你说的我试试看
#9
网上有的说WinExec只支持ANSI,不支持Unicode,是吗?
#10
你只是做了个DLL 怎么会闪出黑屏呢?
如果是打开某个应用程序 有好几种方法 百度吧!
如果是打开某个应用程序 有好几种方法 百度吧!
#11
dll里面用到了system来删除文件夹,所以闪出黑屏
#12
通过project配置修改链接方式:
VS支持两种链接方式,一种是console,一种是windows,你把console修改为windows连接方式就OK了。
VS支持两种链接方式,一种是console,一种是windows,你把console修改为windows连接方式就OK了。
#13
用start命令试试
start /min /b "" path\filename 可以让某个程序在打开的时候是以最小化方式运行.
start /min /b "" path\filename 可以让某个程序在打开的时候是以最小化方式运行.
#14
#15
下面的方法适合VC编译器。
或者:ALT+F7后手动调整连接器子系统为subsystem:\windows解决问题。
GCC可用类似subsystem:\windows的方法来解决。
如果是MinGW编译器,则可以指定链接选项:-mwindows
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
或者:ALT+F7后手动调整连接器子系统为subsystem:\windows解决问题。
GCC可用类似subsystem:\windows的方法来解决。
如果是MinGW编译器,则可以指定链接选项:-mwindows
#16
谢谢,试过你说的,不过还是不行
#17
dll里面用到了system来删除文件夹,所以闪出黑屏
这个和什么子系统没关系,system("aaa")就是运行cmd.exe /c aaa
cmd.exe是console子系统的,你不能改变。
比如你system("rd c:\\a"),就换成WinExec("cmd.exe /c rd c:\\a",0);
但WinExec是被废弃的函数,所以应该使用CreateProcess,把dwCreationFlags设置为CREATE_NO_WINDOW即可
这个和什么子系统没关系,system("aaa")就是运行cmd.exe /c aaa
cmd.exe是console子系统的,你不能改变。
比如你system("rd c:\\a"),就换成WinExec("cmd.exe /c rd c:\\a",0);
但WinExec是被废弃的函数,所以应该使用CreateProcess,把dwCreationFlags设置为CREATE_NO_WINDOW即可
#18
谢谢!
#19
将main或WinMain删除,指定编译选项为Dll,并且编写DLLMain函数。
#20
这样能防止突闪的情况吗?
#21
它们都没有搞清楚你的问题,黑框不是你的程序的,是cmd.exe的
#22
删除文件不要用system,C++语言提供这样的方法的吧。
#23
当然可以
#24
#include "stdafx.h"
#pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")
int main(int argc, _TCHAR* argv[])
{
while(1);
return 0;
}
#1
WinExec("cmd /c dir",SW_HIDE);
#2
学习,MARK
#3
谢谢,请问这句应该加在程序的什么地方呢?
#4
网上说有用#pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")来解决的,可是试了几次都不成功,什么原因呢?
#5
在VC6新建Win32 Application、a simple application
// tmp.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
WinExec("cmd /c dir c:\\new\\*.txt >c:\\new\\txtlist",SW_HIDE);
return 0;
}
测试通过。
不过在DLL里面调用不知道有没有问题。
#6
#7
学习了!
#8
谢谢!我运行环境是vs2008,按照你说的我试试看
#9
网上有的说WinExec只支持ANSI,不支持Unicode,是吗?
#10
你只是做了个DLL 怎么会闪出黑屏呢?
如果是打开某个应用程序 有好几种方法 百度吧!
如果是打开某个应用程序 有好几种方法 百度吧!
#11
dll里面用到了system来删除文件夹,所以闪出黑屏
#12
通过project配置修改链接方式:
VS支持两种链接方式,一种是console,一种是windows,你把console修改为windows连接方式就OK了。
VS支持两种链接方式,一种是console,一种是windows,你把console修改为windows连接方式就OK了。
#13
用start命令试试
start /min /b "" path\filename 可以让某个程序在打开的时候是以最小化方式运行.
start /min /b "" path\filename 可以让某个程序在打开的时候是以最小化方式运行.
#14
#15
下面的方法适合VC编译器。
或者:ALT+F7后手动调整连接器子系统为subsystem:\windows解决问题。
GCC可用类似subsystem:\windows的方法来解决。
如果是MinGW编译器,则可以指定链接选项:-mwindows
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
或者:ALT+F7后手动调整连接器子系统为subsystem:\windows解决问题。
GCC可用类似subsystem:\windows的方法来解决。
如果是MinGW编译器,则可以指定链接选项:-mwindows
#16
谢谢,试过你说的,不过还是不行
#17
dll里面用到了system来删除文件夹,所以闪出黑屏
这个和什么子系统没关系,system("aaa")就是运行cmd.exe /c aaa
cmd.exe是console子系统的,你不能改变。
比如你system("rd c:\\a"),就换成WinExec("cmd.exe /c rd c:\\a",0);
但WinExec是被废弃的函数,所以应该使用CreateProcess,把dwCreationFlags设置为CREATE_NO_WINDOW即可
这个和什么子系统没关系,system("aaa")就是运行cmd.exe /c aaa
cmd.exe是console子系统的,你不能改变。
比如你system("rd c:\\a"),就换成WinExec("cmd.exe /c rd c:\\a",0);
但WinExec是被废弃的函数,所以应该使用CreateProcess,把dwCreationFlags设置为CREATE_NO_WINDOW即可
#18
谢谢!
#19
将main或WinMain删除,指定编译选项为Dll,并且编写DLLMain函数。
#20
这样能防止突闪的情况吗?
#21
它们都没有搞清楚你的问题,黑框不是你的程序的,是cmd.exe的
#22
删除文件不要用system,C++语言提供这样的方法的吧。
#23
当然可以
#24
#include "stdafx.h"
#pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")
int main(int argc, _TCHAR* argv[])
{
while(1);
return 0;
}