zoukankan      html  css  js  c++  java
  • 带dos调试窗口的win32程序

    #pragma comment( linker, "/subsystem:"console" /entry:"WinMainCRTStartup"")

    方法只要
    在cpp文件头部加入一行:

    #pragma comment( linker, "/subsystem:"console" /entry:"WinMainCRTStartup"")
    //以console程序样式,并且制定winmain的入口.
    此位置在系统.h的后面。如放在:stdafx.h的后面就可以。

    不管是vc6还是.net都可以。

    如果link无效,需要替换WinMainCRTStartup

    入口函数有:
    mainCRTStartup
    wmainCRTStartup
    wWinMainCRTStartup
    WinMainCRTStartup
    ---------------------
    在vc2005中的mfc和sdk 程序的入口不同。mfc的入口为WinMainCRTStartup。sdk程序的入口为:wWinMainCRTStartup。

    vc6的入口都是WinMainCRTStartup。
    以上请大家注意。


    在使用printf语句之前记得把stdio.h的头文件包含进去.就可以.实现这个有趣的程序.其实在调试一些大型的win32 gui程序的时候这个dos窗口相当的有用.

    反过来.你在console工程中加入
    #pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"" ) // 设置console的入口地址和gui样式.
    dos窗口就消失了.之会显示像 MessageBox之类的gui窗体.

    这些link选项最后都会填写到PE头文件的Subsystem节中里面只需要把03(console模式,WINDOWS_CUI=3)该为02(WINDOWS_GUI=2).简单点使用修改pe头文件的工具直接修改就可以使gui程序中的printf函数生效.


    一般放在#include "stdafx.h"的后面,才有效
    sdk:
    #pragma comment( linker, "/subsystem:"console" /entry:"wWinMainCRTStartup"")
    #pragma comment( linker, "/subsystem:console /entry:wWinMainCRTStartup")

    mfc:
    #pragma comment( linker, "/subsystem:"console" /entry:"WinMainCRTStartup"")
    #pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup")
    实际编程上面的应用的sdk程序中

    http://blog.csdn.net/xhhjin/article/details/6658941

  • 相关阅读:
    职业生涯步步高:一位资深经理人的职业生涯感悟
    HDU2082解题报告
    How the brain recognizes objects
    学习"图"(最短路径)算法
    HDOJ1022解题报告
    【转】受用的十条经验哈
    Archive for the 'TED' Category TED视频:Tan Le 能读懂脑电波的耳机
    WiFi 802.11ac驱动无线家庭高清影院
    asp.net后台编写 loading效果
    c#字符串分割
  • 原文地址:https://www.cnblogs.com/findumars/p/5208472.html
Copyright © 2011-2022 走看看