我是靠谱客的博主 心灵美黑夜,最近开发中收集的这篇文章主要介绍用dos窗口调试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

http://blog.csdn.net/zhuqinglu/archive/2008/05/17/2454524.aspx

向MFC应用程序添加控制台窗口
简介
    如果你曾经写过MFC应用程序,也许你忽略了控制台窗口。熟悉了控制台窗口的人会认为它是如此的便捷,我就是一个,认为printf或者cout是最优秀的调试函数,可以在不打开任务管理器的情况下在控制台中仅仅按下CTRL+C来结束不响应的程序。不幸的是,MFC应用程序默认情况下并不支持控制台。但是在你的应用程序加入一小段代码后,然后改变连接选项你就可以解决这个问题

 

l         对于Visual Studio .NET

l         对于 Visual Stduio 98 (Visual C++ 6.0)

l         它是如何工作的?

 

对于Visual Studio .NET
请根据下面的步骤做:

 

1.         复制以下代码保存为"mfcconsole.cpp",在Visual Studio .NET选择"Project"菜单的"Add Existing Item",把"mfcconsole.cpp"加进来

 

#include "stdafx.h"

#include <stdio.h>

#include <windows.h>

 

extern "C"

{

int PASCAL WinMain(HINSTANCE inst,HINSTANCE dumb,LPSTR param,int show);

};

 

int main(int ac,char *av[])

{

         char buf[256];

         int i;

         HINSTANCE inst;

         inst=(HINSTANCE)GetModuleHandle(NULL);

         buf[0]=0;

         for(i=1; i<ac; i++)

         {

                   strcat(buf,av[i]);

                   strcat(buf," ");

         }

       return WinMain(inst,NULL,buf,SW_SHOWNORMAL);

}

 

2.         有时不知什么原因vs不编译某些已包含的文件,这个时候,选择"Solution Explorer"属性页,然后右键单击"mfcconsole.cpp"文件选择"Property",按下面的图解设置

 

 


 

3.         在 "Solution Explorer" 属性页选择项目名字,右键属性,设置如下

 

 


 

编译一下看看效果o(∩_∩)o…,如果你想删除控制台,你只需要将上图的SubSystem恢复至/SUBSYSTEM:WINDOWS

 

对于 Visual Stduio 98 (Visual C++ 6.0)
 

Here's how to add a printf-able console window to your MFC application.

 

1.       同.net的(1)

 

2. 右键单击mfcconsole.cpp文件,选择” Setting”,设置如下图:

 

 

 
 

 3. 在项目菜单中点击设置,设置如下图,将"/subsystem:windows"改为"/subsystem:console"

 

 

 

 


 

它是如何工作的
连接选项"/subsystem:*****"控制程序是否有一个控制台窗口,

l         如果是"/subsystem:console":程序启动控制台,从main函数开始执行

l         如果是"/subsystem:windows":不启动控制台,从WinMain开始执行

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhuqinglu/archive/2008/05/17/2454524.aspx

 

 

 

 

http://bbs.vrchina.net/viewthread.php?tid=3454&extra=page%3D16

 

 

去掉启动时dos窗口的简单方法[转]

看了osg自带的例子,它里面全是以main函数开头,这样程序运行时会先有一个dos窗口,这样在调试的时候非常方便,但在发布的时候不是很爽。
我们可以这样做:如果是debug时,我们使用dos窗口,是Release时直接使用windows的窗口,并不弹出dos窗口。

#ifdef _DEBUG
int main( int argc, char **argv )

#else if
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
#endif

注意,如果是release时,你还需要:在工程属性--〉...> 预处理器中把 _CONSOLE改为_WINDOWS;在 链接器---〉System---〉子系统 改为
Windows (/SUBSYSTEM:WINDOWS).

或者
#ifdef NDEBUG
#pragma comment(linker, "/entry:mainCRTStartup")
#endif

这样
int main( int argc, char **argv )
就不用变了

你还需要:在release工程属性--〉...> 预处理器中把 _CONSOLE改为_WINDOWS;在 链接器---〉System---〉子系统 改为
Windows (/SUBSYSTEM:WINDOWS).

最后

以上就是心灵美黑夜为你收集整理的用dos窗口调试的全部内容,希望文章能够帮你解决用dos窗口调试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部