随笔 - 51, 文章 - 1, 评论 - 41, 引用 - 0
数据加载中……

小窍门:在窗口程序中加入控制台显示跟踪信息

         windows下编程有两种基本的程序:窗口程序和控制台程序。它们的代码入口分别是WinMain函数和main函数。但这个区别不是本质的,代码稍加改动main也能启动窗口程序。窗口程序和控制台程序的区别在于程序启动时,系统是否会启动一个控制台。这个区别在于连接时使用了不同的命令参数。

对于vc来说:
窗口程序:/SUBSYSTEM:WINDOWS
控制台程序:/SUBSYSTEM:CONSOLE
对于gcc(Dev-Cpp)来说:
窗口程序:-mwindows
控制台程序:-mconsole

如果参数不对,则会出现一些不想要的结果。如果控制台程序参数不对,则看不到任何信息输出,因为没有控制台来显示这些信息。如果窗口程序使用了/SUBSYSTEM:CONSOLE(VC)或-mconsole(gcc)则会在窗口程序外多出一个控制台。

但对这些特性加以利用怎会帮助我们编程,我们可以在窗口程序中加入控制台,跟踪显示程序运行状态。下面是一个非常简单的例子,只需几行代码就可以达到想要的效果(这是针对vc的例子,gcc需稍加改造)。
/* 文件名:console_trace.h */
/* 作用:在窗口程序中加入控制台,便于跟踪信息 */
#ifndef CONSOLE_TRACE_H
#define CONSOLE_TRACE_H

#define CONSOLE_TRACE
#ifdef CONSOLE_TRACE
#pragma comment(linker, 
"/SUBSYSTEM:CONSOLE")
#define console_trace printf
#
else
#define console_trace  
#endif 
/* CONSOLE_TRACE */

#endif 
/* CONSOLE_TRACE_H */

在你的代码里加入console_trace.h头文件,就可以使用console_trace,跟prinf的使用方法一样。运行时就能在控制台看到输出的信息。

posted on 2008-01-22 23:54 lemene 阅读(1727) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理