>
xml地图|网站地图|网站标签 [设为首页] [加入收藏]

6163银河主站线路检测窗口程序和控制台程序,

- 编辑:银河至尊官网网址 -

6163银河主站线路检测窗口程序和控制台程序,

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

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

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

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

但对这些特性加以利用怎会帮助我们编程,我们可以在窗口程序中加入控制台,跟踪显示程序运行状态。下面是一个非常简单的例子,只需几行代码就可以达到想要的效果(这是针对vc的例子,gcc需稍加改造)。

6163银河主站线路检测 1/* 文件名:console_trace.h */
6163银河主站线路检测 2/* 作用:在窗口程序中加入控制台,便于跟踪信息 */
6163银河主站线路检测 3#ifndef CONSOLE_6163银河主站线路检测,TRACE_H
6163银河主站线路检测 4#define CONSOLE_TRACE_H
6163银河主站线路检测 5
6163银河主站线路检测 6#define CONSOLE_TRACE
6163银河主站线路检测 7#ifdef CONSOLE_TRACE
6163银河主站线路检测 8#pragma comment(linker, "/SUBSYSTEM:CONSOLE")
6163银河主站线路检测 9#define console_trace printf
6163银河主站线路检测 10#else
6163银河主站线路检测 11#define console_trace  
6163银河主站线路检测 12#endif /* CONSOLE_TRACE */
6163银河主站线路检测 13
6163银河主站线路检测 14#endif /* CONSOLE_TRACE_H */

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

 1    error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup    msvcrtd.lib   

产生这个问题可能的原因

1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.

  1. 你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。

解决方法

1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS

2.进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.

3.保存设置,Rebuild All.

6163银河主站线路检测窗口程序和控制台程序,VS2005中的设置。VS2005中的设置请参考对应项进行设置

VS2005中的设置

1.菜单中选择 Project->Properties, 弹出Property Pages窗口

2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.

3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)

4.Rebuild All. Ok ?

本文由银河至尊官网网址发布,转载请注明来源:6163银河主站线路检测窗口程序和控制台程序,