项目build通过,然后start运行。在界面出现前,有个DOS窗口出现,窗口内的信息很快就过去了,看不到。如果DOS窗口的信息提示有错误,那得纠正。请问如何看到DOS窗口的信息或者干脆让DOS窗口不出现?3X。
解决方案 »
- 高手进,这样的选区是咋做滴
- ProtocolImpl.h 和 ProtocolImpl.inl 我如何才能用?
- 请问如何改变CTree控件和CWeb控件的背景颜色
- WM_CREATE(及其他常用的消息)对应的UINT是几?
- 关于钩子的问题,弄了一天也没弄清楚,谢谢.我只有这些分了,谢谢
- 高分求助:我有一个计算机系的朋友(内详)
- 巨分,在VC中如何查找内存泄漏。有什么工具或者好的方法可以查找,狂散分!!
- SOS,怎样用SDK写控件类啊,百分感激,少了再加
- 超级声卡难题,高手请进
- SDI的Document类指针传递给Dialog类?
- 关于在列表subitem中添加按钮的问题
- 为什么基于微软DirctX开发的视频格式一般都是avi?
看看那里创建了一个控制台
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
我用这句#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")出现如下提示:
svcrtd.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>Debug\root_growth3DGUI.exe : fatal error LNK1120: 1 unresolved externals
1.如果你编程时,编译选项是控制台,你在编译选项中找找,即Project->Settings->Link 在Project Options就会发现subsystem:console这两个单词,把它改为subsystem:windows.这是最方便安全的
一般通过使用以下的四种组合可以实现console和windows模式的混合,可以达到不弹出DOS窗口的效果,也可以达到在Windows程序中向控制台输出printf信息了。
#pragma comment( linker, "/subsystem:windows /entry:WinMainCRTStartup" )
#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
#pragma comment( linker, "/subsystem:console /entry:mainCRTStartup" )
#pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup" )
2.一般在使用VC++时,如果你的入口为main等普通入口,那么一般为控制台;Windows程序正常时使用向导,不使用向导也可,但Win32程序入口一般为WinMain()
3.如果你在程序中大量调用控制台下的程序,或者使用控制台的指令,也容易出现Dos窗口,即使用printf,或者cin,cout等。要改成Windows下的输出输入方法最后:从楼主使用的错误提示看,感觉其函数入口有问题了
STARTUPINFO si;
PROCESS_INFORMATION hi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&hi, sizeof(hi));
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE; CString Str1 = "C:\\WINDOWS\\system32\\cmd.exe /c";
CString Str =Str1 + "del " + ("\"" + CurPath + "\"") + "\\output\\*.txt";
LPTSTR pSter = Str.GetBuffer();
CreateProcess(NULL, pSter, NULL, NULL, FALSE, 0, NULL, NULL, &si, &hi); //delete the previous output files.
Str.ReleaseBuffer();
STARTUPINFO si;
PROCESS_INFORMATION hi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&hi, sizeof(hi));
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE; CString Str1 = "C:\\WINDOWS\\system32\\cmd.exe /c";
CString Str =Str1 + "del " + ("\"" + CurPath + "\"") + "\\output\\*.txt";
LPTSTR pSter = Str.GetBuffer();
CreateProcess(NULL, pSter, NULL, NULL, FALSE, 0, NULL, NULL, &si, &hi); //delete the previous output files.
Str.ReleaseBuffer();