Window编程
文章平均质量分 65
gauss
这个作者很懒,什么都没留下…
展开
-
SDK编程笔记 — 计时器篇
SDK编程笔记 — 计时器篇 两个计时器API的讨论 SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。 SetTimer的函数原型如下: UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lp转载 2011-12-13 21:35:59 · 365 阅读 · 0 评论 -
DLL和exe里的malloc和free不能混用
我们在进行VC++编程时可能会经常遇到下面这种提示: 其原因可能是堆被损坏,这说明**.exe中或它加载的任何DLL中有Bug 在网上搜了一下资料,如下说明: 一个模块一个堆,一个线程一个栈。 dll里malloc的内存,在exe里free会出错。 CRT(C运行时期库)不是使用进程缺省的堆来实现malloc(new中调用malloc)的,而是使用一个全局句柄HANDLE转载 2013-01-04 00:11:47 · 423 阅读 · 0 评论 -
Windows消息机制VC
在Windows中,用户或系统中所发生的任何活动被当作事件来处理,例如,用户按下了鼠标按钮,就产生一鼠标事件。对于所发生的每一个事件,Windows将其转换成消息的形式放在一个称为消息队列的内存区中,然后由Windows的消息发送程序选择适合的对象,将消息队列中的消息发送到欲接受消息的对象上。Windows的消息可分为四种类型: (1)输入消息:对键盘和鼠标输入作反应。这类输入消息转载 2013-01-04 22:16:16 · 399 阅读 · 0 评论 -
预处理器的预定义宏大全
符合ANSI的预定义宏: __DATE__:表示当前源文件编译时的日期,格式为:月/天/年(Mmm dd yyyy)。 __FILE__:表示当前正在处理的源文件名称。 __LINE__:表示当前正在处理的源文件的行,可以用#line指令修改。 __STDC__:表示是ANSI C标准。只有在编译器选项指定了/Za,并且不是编译C++程序时,被定义为常整数1;否则未定义。 __TI转载 2013-01-04 00:20:04 · 509 阅读 · 0 评论 -
深入分析Windows和Linux动态库应用异同
摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。 但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验。转载 2013-01-04 22:07:13 · 313 阅读 · 0 评论 -
#pragma data_seg介绍
119人阅读 评论(0)收藏举报 #pragma data_seg介绍 用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为: #pragma data_seg ("shareddata") HWND sharedwnd=NULL;//共享数据 #pragma data_seg() ---------------转载 2013-01-04 00:17:32 · 261 阅读 · 0 评论 -
Win32 关键点总结
一 窗口和消息 1 前缀 前缀 全称 释义 CS class style 类风格选项 CW create windows 创建窗口选项 DT draw text 绘制文本选项 IDI Icon ID 图标ID号 IDC Cursor ID 光标ID号 MB Message Box 消息框选项转载 2013-01-08 12:43:09 · 499 阅读 · 0 评论 -
了解CObject 和 CRuntimeClass
作者:林水怒 shuinu@163.net 转载请保留作者署名 CObject和CRuntimeClass是MFC中两个非常重要的类/结构,绝大部分MFC类都是以CObject做为基类, CRuntimeClass结构同CObject密不可分,了解它们对于深入理解MFC具有重要意义。 一、CRuntimeClass结构 要理解CObject,我们先来看一下CRuntimeClass这转载 2013-01-08 13:14:40 · 361 阅读 · 0 评论 -
Visual Studio 代码生成 运行时库的选择
2012-08-14 07:02 196人阅读 评论(0) 收藏 举报 运行时库的选项有:多线程(/MT)、多线程调试(/MTD)、多线程DLL(/MD)、多线程调试(/MDd) 有时调用外部的一些库,这个选择不对,老编译不通过; c运行时库 库文件 single threa转载 2013-01-08 22:15:51 · 590 阅读 · 0 评论 -
Win32常用的 类型和宏
Win32常用的 类型和宏 COLORREF 1、结构定义 一个COLORREF 型颜色值是定义了一种颜色的长整数。要求一个颜色参数的GDI函数(比如CreatePen和FloodFill)接受COLORREF值作为参数。 2、结构说明 根据应用程序对COLORREF类型值的不同使用方式,该类型值具有三种不同的形式。它可以定义为下列三种方式之一: (1)直接定义RGB值 其中低位字节转载 2013-01-08 22:24:21 · 628 阅读 · 0 评论 -
怎样从一个DLL中导出一个C++类
原文作者:Alex Blekhman 翻译:朱金灿 原文来源: http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx 译文来源:http://blog.csdn.net/clever101 C++语言毕竟能和Windows DLLs能够和平共处。转载 2013-01-04 00:10:58 · 367 阅读 · 0 评论 -
/MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
一、MD(d)、MT(d)编译选项的区别 1、编译选项的位置 以VS2005为例,这样子打开: 1) 打开项目的Property Pages对话框 2) 点击左侧C/C++节 3) 点击Code Generation节 4) 右侧第六行Runtime Library项目 2、各个设置选项代表的含义 编译转载 2013-01-16 12:45:59 · 438 阅读 · 0 评论 -
DLL与EXE之间的内存 new 与 delete 上的问题
最近在做的一个项目,我们的一个EXE调用了DLL,其中EXE会使用DLL new出来的变量指针,而且会在EXE delete这些指针,同样,DLL也会使用及delete由EXE new出来的变量指针。 开始在做测试的时候没有发现任何问题,当时用的是DEBUG版本。 可是后来发现Release版本运行程序时总是会崩,于是开始疯狂地调试,终于找到了导致崩溃的原因: 我们的Release版的EXE和转载 2013-01-04 00:15:10 · 656 阅读 · 0 评论 -
在DLL中用CRT静态库申请内存,EXE释放是不行的
因为malloc/free,new/delete都是调用HeapAlloc/HeapFree来实现来实现内存分配是释放的。 查看Windows的API可以看到,这两个函数都需要一个Heap的HANDLE做为参数。CRT库采用了全局变量来保存这个HANDLE。如果是CRT静态链接,CRT库的代码会链接到各个DLL中去,也包括这个全局变量。 也就是说,每个使用CRT静态链接的dll中都有一个自己的转载 2013-01-04 00:19:13 · 679 阅读 · 0 评论 -
SDK编程笔记 - DLL篇
SDK编程笔记 - DLL篇 1. 动态链接之含义 在链接应用程序时常使用所谓“静态链接”的方法,即将各个目标文件(.obj)、运行时函数库(.lib)以及已编译的资源文件(.res)链接到一起,形成一个可执行文件(.exe)。使用静态链接时,可执行文件需要使用的各种函数和资源都已包含到文件中。这样做的缺点是对于多个程序都使用的相同函数和资源要重复链接到exe文件中,使程序变大、占用内存转载 2011-12-13 21:54:23 · 398 阅读 · 0 评论 -
SDK编程笔记-UNICODE篇
SDK编程笔记-UNICODE篇 [简单基础但重要] Petzold的Programming Windows的第2章非常详细的讲解了关于Unicode的方方面面。我们需要知道的是它给C语言和Windows编程带来的变化。 ·C语言相关 对应于char, C语言中也有宽字符内型wchar_t。wchar_t被定义为: typedef unsigned short wchar_转载 2011-12-13 21:47:17 · 263 阅读 · 0 评论 -
Clipboard传递数据
在window下面不同的进程之间可以利用剪切板传递文本,图片等数据. API讲解 打开剪切板 BOOL OpenClipboard( HWND hWndNewOwner ); hWndNewOwner是剪切板关联的窗口,一般设为空就可以了。 关闭剪切板 BOOL CloseClipboard( VOID ); 清空剪切板内容 BOOL EmptyCl原创 2011-12-27 23:09:42 · 1101 阅读 · 0 评论 -
DLL编写教程
本文对通用的DLL技术做了一个总结,并提供了源代码打包下载,下载地址为: http://www.blogjava.net/Files/wxb_nudt/DLL_SRC.rar DLL的优点 简单的说,dll有以下几个优点: 1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内转载 2013-01-04 00:09:16 · 361 阅读 · 0 评论 -
预处理器简介
预处理器 预处理是C编译器做的第一件事情,主要是做一些文本方面的工作。包括:删除注释、插入被#include包含的文件、定义和替换由#define指令定义的符号以及代码的部份内容,和条件编译。 预定义符号 预定义符号如下表所示: __FILE__ 进行编译的文件名 __LINE__ 文件的当前行号转载 2013-01-04 00:13:07 · 383 阅读 · 0 评论 -
VC++中忽略所有默认库纯Win32 API编译及链接
我们在用VC++编写Windows程序的时候可能会发现一般可执行体(.EXE)的文件体积都比较大,于是非常羡慕那些使用Win32汇编编写程 序的人,因为他们编写的可执行文件非常小。其实应用程序的体积是一方面,另外应用程序的部署环境则是需要注意的另一方面,这方面我深有体会,曾经使用 Visual Studio 2008编译过一个C++的Win32程序,本地测试正常,但是部署到客户机时,出现缺少什么动转载 2013-01-04 00:25:59 · 440 阅读 · 0 评论 -
如何使用BHO定制你的Internet Explorer浏览器
原文出处:Browser Helper Objects: The Browser the Way You Want It 一、简介 有时,你可能需要一个定制版本的浏览器。在这种情况下,你可以自由地把一些新颖但又不标准的特征增加到一个浏览器上。结果,你最终有的只是一个新但不标准的浏览器。Web浏览器控件只是浏览器的分析引擎。这意味着仍然存在若干的与用户接口相关的工作等待你做――增加一个地转载 2013-01-04 21:54:07 · 389 阅读 · 0 评论 -
Dll 模块间(dll, exe)使用导出变量、静态变量和外部变量的试验与结论
转自:http://blog.csdn.net/pizi0475/article/details/7951738 非常感谢博主奉献 [原]模块间(dll, exe)使用导出变量、静态变量和外部变量的试验与结论 Technorati 标签: vc,模块,导出变量,静态变量,外部变量 // Dll头文件声明 AFX_EXT_DATA int D1_nCount; extern转载 2013-01-04 00:14:45 · 990 阅读 · 0 评论 -
Windows下字体渲染方案
要在Windows平台下渲染字体主要有三种途径: 1. 调用Windows SDK提供的图形接口GDI/GDI+。 2. 调用DirectX提供的 D3DXCreateText 或是ID3DXFont的相关接口来实现。 3. 用GDI或是其他第三方库(如Freetype)渲染出字形,再调用DX或SDK来绘制图形。 这三种方式各自有各的定位,不能简单地来哪个方法好,哪个方法坏转载 2013-01-04 22:01:34 · 1849 阅读 · 0 评论 -
struct tm 和 time_t 时间和日期的使用方法(转)
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。下面主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一转载 2013-01-04 22:29:08 · 386 阅读 · 0 评论