
C++
文章平均质量分 79
mader
这个作者很懒,什么都没留下…
展开
-
VC中使用GDI+在内存转换图片类型
VC中使用GDI+在内存转换图片类型微软新推出的GDI+功能强大,本文仅对图片转换加以讨论,不足之处请大家指出。图片类型的转换支持:bmp、dib、png、gif、jpeg/jpg、tiff、emf等。以下是详细步骤。首先,在StdAfx.h中静态调用diplus.lib,即由编译系统完成对DLL的加载,应用程序结束时卸载DLL的编码。如下: #ifndef ULONG_PTR#def原创 2007-08-09 14:34:00 · 1156 阅读 · 0 评论 -
ScrollWindow函数功能
函数功能:该函数滚动所指定的窗体客户区域内容。函数提供了向后兼容性,新的应用程序应使用ScrollWindowEX。函数原型:BOOL ScrollWindow(HWND hWnd,int XAmount,int YAmount,CONST RECT★IpRect, CONST RECT★lpClipRect);参数:hWnd:客户区域将被滚动的窗体句柄。XAmount:指定水平滚动以设备为单位的原创 2007-08-30 14:42:00 · 5059 阅读 · 1 评论 -
#Pragma 指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数原创 2007-08-22 13:19:00 · 714 阅读 · 0 评论 -
_stdcall 与 _cdecl 的区别
_stdcall 与 _cdecl 的区别几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是问题的关键,如何清除??如果我们的函数使用了_cdecl,那么栈的清除工作是由调用者,用COM的术语来讲就是客户来完成的。这样带来了原创 2007-08-21 14:51:00 · 844 阅读 · 0 评论 -
论坛摘选(省略参数,va_List,_vsntprintf )等
va_start执行后pArgList指向szFormat后面的第一个可变参数,但没有用va_arg取得其值(包括第二个可变参数),为何可以直接调用_vsntprintf ( szBuffer, sizeof (szBuffer) / sizeof (TCHAR), szFormat,原创 2007-08-21 13:10:00 · 1950 阅读 · 1 评论 -
新手入门之va_list
va_list在win32/vc++6.0下的讨论1. 简介va_list、va_arg、va_end是为了处理变参数的函数而做的宏定义,这些定义会因为平台(cpu、操作系统)和环境(编译系统)的不同而有所不同。简单原理:编译系统编译时,会将函数的参数依次放到栈中,这样根据固定参数的地址以及固定参数给出的相关信息很容易得到可变参数的个数、类型、值。注意一点,这些或者是固定参原创 2007-08-20 18:35:00 · 9128 阅读 · 3 评论 -
GDI+显示GIF动画
多页图像是指图像中包含有多个图形页。每页可以看作图像帧。这些图像帧通过连续的显示就形成了一副动画。比如GIF文件。 GDI+的Image对象提供了直接的对GIF、TIF文件格式的支持。调用Image对象的成员函数GetFrameDimensionsCount可以得到Image对象的Dimension数。每个Dimension通过一个GUID标示。函数GetFrameDimensionsL原创 2007-08-17 16:40:00 · 949 阅读 · 0 评论 -
gif的文件格式
GIF(Graphics Interchange Format,图形交换格式)文件是由 CompuServe公司 开发的图形文件格式,版权所有,任何商业目的使用均须 CompuServe公司授权。 GIF图象是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值), 最多只支持8位(256色)。GIF文件内部分成许多存储块,用来存储多幅图象或者是决 定图象表现行为的控制块,用以实现动画原创 2007-08-14 16:55:00 · 1617 阅读 · 0 评论 -
双重指针
双重指针」也有人称为「指针的指针」,其作用为「间接参照」,但无论是哪一个名词,都是令人困惑的,其实指针就是指针,所谓的多重指针,其实还是指针,它们的作用单纯来说,都是用以储存记忆体位址。 思考一个问题,当您要取得int变数的记忆体位址时,会使用int*来宣告指针,要取得double变数的记忆体位址时,会使用double*来宣告指针,这是因为它们在进行加减法运算时,所位移的单位并不相同,而是根据它们原创 2007-08-14 15:23:00 · 7454 阅读 · 0 评论 -
解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。(1原创 2007-08-14 10:58:00 · 669 阅读 · 0 评论 -
Visual C++中DDB与DIB位图编程全攻略
对每个像素进行了(R,G,B)量化的图像就是位图,其在计算机中对应文件的扩展名一般为.bmp。1. 基本概念 先来用通俗的语句讲解位图和调色板的概念。我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级, 而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。对于人眼而言,原创 2007-08-09 13:32:00 · 1642 阅读 · 4 评论 -
标准C++类string的Copy-On-Write技术(一)
标准C++类std::string的内存共享和Copy-On-Write技术 陈皓1、 概念 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书原创 2007-08-13 14:59:00 · 1230 阅读 · 0 评论 -
Cstring用法
CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直截了当。这篇文章不是CString的完全手册,但囊括了大部分常见基本问题。 这篇文章包括以下内容: C原创 2007-08-13 13:30:00 · 2400 阅读 · 0 评论 -
标准C++类string的Copy-On-Write技术(二)
2.2、 深入在深入这前,通过上述的演示,我们应该知道在string类中,要实现写时才拷贝,需要解决两个问题,一个是内存共享,一个是Copy-On-Wirte,这两个主题会让我们产生许多疑问,还是让我们带着这样几个问题来学习吧:1、 Copy-On-Write的原理是什么?2、 string类在什么情况下才共享内存的?3、 string类在什么情况下触发写时才拷贝(原创 2007-08-13 15:07:00 · 1171 阅读 · 0 评论 -
vsBug安装后出现问题
症状当您运行 Visual Studio 6.0 安装程序时,可能会收到下面的错误消息:Setup was unable to create a DCOM user account in order to register /valec.exe 此错误消息首先出现,并可能跟随第二条消息,指示安装程序已失败。回到顶端原因Visual Studio Analyzer 是 Visual Studio原创 2007-08-11 17:21:00 · 704 阅读 · 0 评论 -
VC板新手指南
请各位新手先看此贴在telnet方式下, Ctrl+g:可以查看文摘区; x:进入精华区,可以查看; z:进入秘密备忘录; /:主题查询1.不要用"求救"、"一个问题"、"大侠请帮忙"、"请教"一类的标题,要尽可能的在标题上 写清楚问题的大致内容,对于不合规定的贴子,板主保留删除的权利(目前奉行板主改名原则;2.最好的老师是MSDN,不要总想着什么问题都能够从别人那里得到答案原创 2007-08-11 17:17:00 · 1380 阅读 · 0 评论 -
标准C++类string的Copy-On-Write技术(三)
2.3.4、 Copy-On-Write的具体实现是怎么样的? 最后的这个问题,我们主要解决的是那个“民主集中”的难题。请先看下面的代码: string h1 = “hello”; string h2= h1; string h3;原创 2007-08-13 15:09:00 · 1108 阅读 · 1 评论 -
DIB简介
DIB(Device-indepentent bitmap)的与设备无关性主要体现在以下两个方面: DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。 256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。 由于DIB不依赖于具体设备,因此可以用来永久性地保存图象。DIB一般是以*.BMP文件原创 2007-08-09 15:01:00 · 3934 阅读 · 0 评论 -
fstream的用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输转载 2007-10-22 18:31:00 · 8024 阅读 · 2 评论