带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
带dos调试窗口的win32程序的更多相关文章
- OD调试1--第一个win32程序
OD调试一:第一个Win32程序的修改 在软件开发的过程中,程序员会使用一些调试工具,以便高效地找出软件中存在的错误.而在逆向分析领域,分析者也会利用相关的调试工具来分析软件的行为并验证分析结果.由于 ...
- 在Win32程序中显示Dos调试窗口,可暂停(AllocConsole,WriteConsole,FreeConsole函数,GetStdHandle函数取得输入句柄)
在很多程序中,都可以看到程序运行中,会有一个Dos窗口,实时显示一些运行信息,这里就告诉大家是如何实现的,我们做个简单的,其实对控制台的操作还有很多,有兴趣的可以去查资料. 用到的API函数如下: / ...
- 在Win32程序中显示Dos调试窗口
在很多程序中,都可以看到程序运行中,会有一个Dos窗口,实时显示一些运行信息,这里就告诉大家是如何实现的,我们做个简单的,其实对控制台的操作还有很多,有兴趣的可以去查资料. 用到的API函数如下: / ...
- windows程序员进阶系列:《软件调试》之Win32堆的调试支持
Win32堆的调试支持 为了帮助程序员及时发现堆中的问题,堆管理器提供了以下功能来辅助调试. 1:堆尾检查(Heap Tail Check) HTC,在堆尾添加额外的标记信息,用于检测堆块是否溢出. ...
- win32程序之子窗口编程
win32程序之子窗口编程 一丶简介.什么是子窗口 在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环. 那么有很多窗口其实Windows已经帮我们创建出来了.我们直接使用 ...
- win32程序之窗口程序,以及消息机制
win32程序值窗口程序,以及消息机制 一丶简介 通过上一讲.我们了解了窗口其实是绘制出来的.而且是不断绘制的过程. 所以窗口的本质是绘制. 但是我们现在看到的窗口程序.都可以点击关闭按钮. 使用鼠标 ...
- Win32 程序在启动时激活前一个启动程序的窗口
UWP 程序天生单实例.当然,新 API (10.0.17134)开始也提供了多实例功能.不过,传统 Win32 程序可就要自己来控制单实例了. 本文介绍简单的几个 Win32 方法调用,使 Win3 ...
- Win32 程序开发:创建一个应用程序窗口
一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSN ...
- Win32 程序开发:窗口类结构体 WNDCLASS 和 WNDCLASSEX
一.窗口类结构体简介 窗口类结构体包含了窗口的各种参数信息.比如:窗口的图标.菜单栏.背景颜色.窗口的消息处理等等. 窗口类结构体有两个:WNDCLASS(早期版本) 和 WNDCLASSEX(新版本 ...
随机推荐
- DIOR HOMME_百度百科
DIOR HOMME_百度百科 DIOR HOMME 编辑 Dior Homme 男装品牌,中文名迪奥·桀傲,由迪奥 (Dior) 在2001年更名更来,品牌来源地法国.迪奥·桀傲 ...
- iOS导航条渐变透明
来源:HelloYeah 链接:http://www.jianshu.com/p/b8b70afeda81 下面这个界面有没有觉得很眼熟.打开你手里的App仔细观察,你会发现很多都有实现这个功能.比如 ...
- ContentProvider的一些总结
ContentProvider中的URI, The URI that identifies the provider 一个特定的uri对应着唯一一个内容提供者, 谷歌官方文档里的说明, Query ...
- quartz群调查调度机制和源代码分析
pageId=85056282#quartz集群调度机制调研及源代码分析-quartz2.2.1集群调度机制调研及源代码分析" style="color:rgb(59,115,17 ...
- abstract 关键字-- 抽象
代码: using System; namespace Console_Test { class Program { public abstract class MyClas { /// <su ...
- 在win8.1上用Bitvise SSH Server 6.24(原名winsshd)搭建SSH2服务器
注意:此SSH是指运维领域的 SSH,不是指JavaWeb框架中的SSH. 运维领域:SSH=Secure Shell安全外壳协议 JavaWeb框架:SSH=Spring+Struts+Hibern ...
- 解决QT Creator在Linux下的输入法问题
https://vjudge1.github.io/2014/04/02/type-chinese-in-linux/http://blog.csdn.net/ubuntutouch/article/ ...
- c#与java中byte字节的区别及转换方法
原文:c#与java中byte字节的区别及转换方法 在java中 byte的范围在 [-128,127] 在C#中 byte的范围在 [0,255] 所以 java程序与C#程序 进行数据传输的时 ...
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...
- 【iOS发展-53】实例探究:scrollView使用方法和解决方案无法滚动核心
案例效果: (1)基本的就是练习scrollView的使用方法.界面里面的其它元素基本都是UIView和UIButton堆砌起来的. (2)主要用代码实现.当然,能够先用storyboard拖个scr ...