VC
文章平均质量分 75
okaimee
这个作者很懒,什么都没留下…
展开
-
静态链接库(Lib)与动态链接库(DLL)的区别
静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包转载 2010-03-18 14:31:00 · 892 阅读 · 0 评论 -
关于Visual C++ 的ATL.MFC.CLR对比
MFC、ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用。当然关于C++开发的库不止这3个,不过这3个是微软推荐。从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR. WIN32 winAPI MFC MFC类库 CLR .net库1. WIN32常规就是不用MFC,使用API函数编的程序。2. MFC库有很多年的历史了,MFC是基于W转载 2010-03-25 21:02:00 · 678 阅读 · 0 评论 -
备受争议的Visual C++
Visual C++为了让程序员能够自由的使用C++语言完成Windows应用程序的编写,可谓“煞费苦心”,然而,同时因为一些原因Visual C++却饱受争议。这些争议包括以下5点。1.关于Visual C++对标准C++的支持前面谈到,Visual C++不是唯一的C++编译器提供者,在linux环境下,GCC就很有知名度。而由于历史原因,Visual C++ 6.0推出的时候,C++转载 2010-03-26 09:07:00 · 1299 阅读 · 0 评论 -
使用 Visual C++ 2008 功能包加强 Windows 应用程序
作为一名 Visual C++ 开发人员 ,您在最近几年可能有点被冷落的感觉,因为与 Visual C#® 相比,似乎 Microsoft 向 Visual C++® 添加的新特性和新功能要少很多。事实上,尽管 Visual C++ 编译器在性能、安全性和标准符合性等方面始终在不断改进,但很长时间以来在新库和生产率功能方面却做的比较少。后来虽然更新了 MFC 以更好地支持 Windows Vist转载 2010-03-28 17:57:00 · 930 阅读 · 0 评论 -
Visual C++ 2008 SP1 MFC (OFFICE界面)使用入门
图形画板2008设计文档目录1. 图形后台框架 1.1. 基本图形类框架如下: 2. 界面框架 2.1. 快捷菜单 2.2. 主菜单 2.3. 工具栏 3. 如何创建OFFICE风格的MFC工程 4. 如何在工具栏上面添加按钮 4.1. 添加菜单主项转载 2010-03-28 18:30:00 · 8382 阅读 · 3 评论 -
智能指针
智能指针Smart Pointer 智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与转载 2010-03-29 11:29:00 · 681 阅读 · 0 评论 -
CoInitialize
Coinitialize CoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。 返回值S_OK : 该线程中COM库初始化成功S_FALSE 该线程中COM库已经被初始化 CoInitialize () 标明以单线程方式创建。 使转载 2010-03-29 11:35:00 · 785 阅读 · 0 评论 -
stdafx.h
简介 名称的英文全称为:Standard Application Framework Extensions 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译头文件通过编译stdafx.c转载 2010-03-29 11:34:00 · 543 阅读 · 0 评论 -
Microsoft Visual C++ 2008 Sample Library
Visual C++ 开发中心 Microsoft Visual C++ 2008 Sample Library Visual C++ Samples documentation原创 2010-03-30 13:27:00 · 711 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号
VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolv转载 2010-04-01 09:17:00 · 1211 阅读 · 0 评论 -
VC中的坐标
1.逻辑坐标 逻辑坐标是独立于设备的,它与设备点的大小无关。使用逻辑单位,是实现"所见即所得"的基础。当程序员在调用一个画线的GDI函数LineTo,画出25.4mm(1英寸) 长的线时,他并不需要考虑输出的是何种设备。若设备是VGA显示器,Windows自动将其转化为96个像素点;若设备是一个300dpi的激光打印机,Windows自动将其转化为300个像素点转载 2010-04-16 17:38:00 · 635 阅读 · 0 评论 -
Debug版本和Release版本的区别
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编原创 2010-04-06 09:33:00 · 524 阅读 · 0 评论 -
常用MFC消息映射宏说明
1、DECLARE_MESSAGE_MAP:在头文件中声明源文件中所含有的消息映射 2, BEGIN_MESSAGE_MAP:标记源文件消息映射的开始 3,END_MESSAGE_MA:标记源文件消息映射的结束 4,ON_COMMAND:将特定命令的处理委派给类的一个成员函数 5,ON_CONTROL:映射一个函数到一个定制控制通知消息,该定制消息是 从一个控制发送转载 2010-04-06 17:45:00 · 748 阅读 · 0 评论 -
轻松实现类VC界面(停靠窗口)
作者:浙江省温岭电信局 王骏 一、实现原理图中两个窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,笔者将CSizingControlBar类修改了一下并命名为CCoolBar,接下来我们将详细转载 2010-04-21 19:15:00 · 1153 阅读 · 0 评论 -
自绘的RadioButton
转载自:小男人博客前言:没想到这么久不来这里写东西了。其实真的是前段时间没什么东西好写的,毕竟肚子里面墨水不多。还有就是没有什么有价值的东西,只是觉得最近自己进步很慢,不过倒是不想以前那么散漫了,看到喜欢什么就学什么。看来我还是专心研究C++吧,呵呵。真是门很好很强大的语言。这里自己在做任务的时候接到了一个自绘RadioButton的控件,开始以为很简单,但是由于自己知识点的缺乏,以及转载 2010-04-21 15:59:00 · 3090 阅读 · 3 评论 -
VC中在对话框上显示图片
1、用图片控件 在对话框中加入Picture控件,属性页中General->Type设为Bitmap, Image中选中相关联的图片资源号。 这样就编译运行,你就会发现它己经可以了。 耶,不对,图片复盖了其它控件!怎么办? 哈哈,这是由于你的Picture控件是后面放上去的。这样它会显示在最上层,所以有些控件看不到了。有两种方法可以解决: (1)、选中所有控件Ctrl+A, 然转载 2010-04-22 10:18:00 · 2947 阅读 · 1 评论 -
如何有效地使用对话框
译者:徐景周(原作:VGirish) Q:如何在对话框中加入工具条在 OnInitDialog 中加入下面代码: BOOL CYourDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Create the toolbar. To understand the meaning of the转载 2010-04-22 09:53:00 · 604 阅读 · 0 评论 -
串行化(Serialization)
串行化(Serialization)作者:阿荣下载例子源代码串行化是微软提供的用于对对象进行文件I/O的一种机制,该机制在框架(Frame)/文档(Document)/视图(View) 模式中得到了很好的应用。很多人对什么是串行化、怎么使对象具有串行化能力和如何使用串行化功能等问题都不甚明了。本文试图对串行化做一个简单的解释。由于本人对串行化功能使用的也不多,不足之处敬请谅解。 MFC 框转载 2010-04-27 11:18:00 · 887 阅读 · 0 评论 -
VC实现打开BMP JPG或GIF图片
之前写过一篇文章关于VC中打开图片文件的文章,那个不是很好理解,里面有些地方显得有点乱,这个版本的要容易理解一点,不多说了,我们开始吧。 源文件下载:ShowBitmap.rar1、新建一个单文档的应用程序,项目名称为ShowBitmap2、为CShowBitmapView类添加下述成员变量和成员函数:其中CImage m_MyImage需要头文件"atlimage.h"的支持,或转载 2010-04-28 16:07:00 · 1406 阅读 · 1 评论 -
基于VC.NET的GDI+图像处理
我们知道,在以往的图像处理中,常常要根据不同图像文件的格式及其数据存储结构在不同格式中进行转换。某个图像文件的显示也是依靠对文件数据结构的剖析,然后读取相关图像数据而实现的。现在,GDI+提供了Image和Bitmap类使我们能轻松容易地处理图像。 概述 GDI+支持大多数流行的图像文件格式,如BMP、GIF、JPEG、TIFF和PNG等。下面先来介绍这些图像文件,然后再说明Image转载 2010-05-05 11:56:00 · 806 阅读 · 0 评论 -
基于VC.NET的GDI+编程之CImage
我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码。现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Vi转载 2010-05-05 12:49:00 · 660 阅读 · 1 评论 -
VC++和VC++.NET中与图像处理有关的几个概念、结构和类
最近一直在看VC++有关图像处理方面的书,终于把以前一直混淆的几个概念、结构和类弄清楚了,特整理如下。如有错误,请大家批评指正,不胜感激。下一步想好好学习学习OpenCV,希望也能总结点东西。 一、DDB与DIB位图 一个Windows的位图实际上是一些和显示像素相对应的位阵列,它有两种类型:一种称之为GDI(Graphic Device Interface)位图,另一种是DIB位转载 2010-05-05 12:55:00 · 1442 阅读 · 2 评论 -
利用CImage完成图片的显示、拷贝、绘制及转换图片格式
近日一个利用VC编写的程序需要在界面上显示图片,经过查阅资料利用CImage方得实现。将相关技术点整理如下,以供以后参考。一、 图片的载入如果需要在界面上显示的是已经存在的图片,那么需要将待显示的图片载入至CImage对象之中,CImage提供了四个载入函数: HRESULT Load(LPCTSTR pszFileName) throw( );HRES转载 2010-05-05 14:29:00 · 2046 阅读 · 0 评论 -
CreateFile函数详解
CreateFile The CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications resources disk devices(Windo转载 2010-05-05 17:45:00 · 649 阅读 · 0 评论 -
8位灰度图像BMP的保存
在图像处理中,我们经常需要将真彩色图像转换为黑白图像。严格的讲应该是灰度图,因为真正的黑白图像是二色,即只有纯黑,纯白二色。开始之前,我们先简单补充一下计算机中图像的表示原理。计算机中的图像大致可以分成两类:位图(Bitmap)和矢量图(Metafile)。 位图可以视为一个二维的网格,整个图像就是由很多个点组成的,点的个数等于位图的宽乘以高。每个点被称为一个像素点,每个像素点有确定的颜色,当很多转载 2010-05-06 11:08:00 · 7907 阅读 · 0 评论 -
visual c++图像处理
VC++图象处理编程(一) 基本概念前言数字图像处理技术与理论是计算机应用的一个重要领域,许多工程应用都涉及到图像处理,一直有一个强烈的愿望,想系统的写一个关于数字图像处理的讲座,由于工作学习很忙,时至今日才得以实现。 “图”是物体透射光或反射光的分布,“像”是人的视觉系统对图的接收在大脑中形成的印象或认识。图像是两者的结合。人类获取外界信息是靠听觉、视觉转载 2010-05-05 15:00:00 · 4463 阅读 · 0 评论 -
开发灰度位图处理
图像处理技术已经渗透到人类生活的各个领域并得到越来越多的应用,图像处理所涉及的图像格式有很多种,如TIF、JEMP、BMP等等,工程 应用中经常要处理256级的灰度BMP图像,如通过黑白采集卡采集得到的图像。BMP灰度图像作为Windows环境下主要的图像格式之一,以其格式简 单,适应性强而倍受欢迎。在进行图像处理时,操作图像中的像素值就要得到图像阵列;经过处理后的图像的像素值存储起来;显示图像时转载 2010-05-06 11:07:00 · 1516 阅读 · 0 评论 -
VC 画图原理分析(双缓冲)
<br />用VC做的画图程序,当所画的图形大于屏幕时,在拖动滚动条时屏幕就会出现严重的闪烁,为了解决这一问题,就得使用双缓冲来解决。程序产生严重的闪烁问题是因为画图过程中前后两次的画面反差很大造成的人的视觉的闪烁。因为在VC中每次在调用OnDraw时系统都是先用背景画刷将画布清除再执行画图命令,这样在你每次移动滚动条时每执行一次OnDraw就会有一个空白页,这样和你的最终结果图象之间有一个很大的反差,因而看起来闪烁,而且滚动条滚动越快闪烁越严重。当然,你可以将背景画刷设为NULL,这样可以解决闪烁问题,但转载 2010-07-02 17:30:00 · 1190 阅读 · 0 评论 -
CRectTracker类的使用
CRectTracker类的使用作者:二鸡蛋CRectTracker(俗称“橡皮筋”类)是一个非常有意思的类。你在Windows中经常看到这样的情况:它可以用做显示边界,你也可以扽它的八个角用来放大缩小,或做框选使用。如何通过编程来实现这种功能呢?这就是CRectTracker类的作用;(框选) (显示边界并可以缩放)例子(源程序)你打开上面的那个工程文件,编译运行一下。你将看到CRectTracker的几种功能; 下面让我们来从头做一个新的工程文件,来慢慢掌转载 2010-07-06 11:18:00 · 552 阅读 · 0 评论 -
使用CRectTracker类进行对象动态定位
使用CRectTracker类进行对象动态定位内容提要 使用VC,VB,Delphi等可视化工具进行程序设计的时候用的最多的可能就是控件的拾取,拖动以及动态定位了。例如我们可以在VC中用鼠标一次拾取数个控件,然后通过鼠标或者通过左右上下方向键进行控件的微移,从而使控件移到合适的位置,这种技术就是对象动态定位。动态定位也是交互式程序设计中最基本的操作之一。在VC中我们可以通过CRectTracker类来实现这些操作。 一 关于CRectTracker类 MFC中的CrectTRacke转载 2010-07-07 09:51:00 · 818 阅读 · 0 评论 -
位图、调色板以及区域
一、调色板 在使用256色显卡的计算机上,每个程序允许使用的颜色一共只有256种。但是除了操作系统保留的20种称为静态颜色外其他的236种颜色允许每个应用程序自己决定。于是就有了调色板。应用程序在这种计算机上运行为了获得较好的显示效果必须将自己需要使用的主要颜色选入显卡的调色板当中以供使用。 使用调色板我们首先要知道计算机显卡的类型,以判断是否要使用或者是否能够使用调色板。转载 2010-05-18 10:49:00 · 2622 阅读 · 0 评论 -
CWinApp::OnFileOpen
问题: 用MFC AppWizard *.exe生成的多文档视图结构的程序中,当点击File菜单中的Open项时,程序将要调用应用程序类的CWinApp::OnFileOpen函数,请问该函数按照先后次序具体执行了哪些行为?这与当点击New项调用CWinApp::OnFileNew函数所执行的功能中哪些相同,哪些不同? CWinApp::OnFileOpen函数大概执行以下步骤: 1、转载 2010-05-19 10:37:00 · 4759 阅读 · 0 评论 -
VC菜单命令详解(文件打开、保存与关闭)
第一部分:五个命令ID: 处理函数 ID_FILE_NEW CWinApp::OnFileNew ID_FILE_OPEN CWinApp::OnFileOpen ID_FILE_SAVE CDocument::OnFileSave ID_FILE_SAVEAS CDocument::OnFileSaveAs ID_FILE_CLOSE CDocumen转载 2010-05-19 10:42:00 · 737 阅读 · 0 评论 -
BMP位图的基本概念
一、BMP文件结构 1. BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2. BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下: typedef struct tagBITMAPFILEHEADER原创 2010-05-20 09:10:00 · 935 阅读 · 0 评论 -
VC中关于GlobalAlloc,GlobalLock,GlobalUnLock
VC中关于GlobalAlloc,GlobalLock,GlobalUnLock调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。 调用GlobalLock函数锁定内存块,该函数接受一个内存句柄作为参数,然后返回一个指向被锁定的内存块的指针。 您可以用该指针来读写内存。 调用GlobalUnlock函数来解锁先前被锁定的内存,该函数使得指向内存块的指针无效。 调用Glob转载 2010-05-20 10:24:00 · 608 阅读 · 0 评论 -
CArchive 原理
MFC 提供CArchive类实现数据的缓冲区读写,同时定义了类对象的存储与读取方案。 以下对CArchvie 的内部实现作分析。 1.概述 2.内部数据 3.基本数据读写 4.缓冲区的更新 5.指定长度数据段落的读写 6.字符串的读写 7.CObject派生对象的读写 1.概述 CArchive使用了缓冲区,即一段内存空间作为临时数据存储地,对CArchi转载 2010-05-19 11:03:00 · 559 阅读 · 0 评论 -
DIB结构
DIB(Device-indepentent bitmap) DIB(Device-indepentent bitmap)的与设备无关性主要体现在以下两个方面: DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。 256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。 由于DIB不依转载 2010-05-20 09:17:00 · 713 阅读 · 0 评论 -
Visual C++应用框架揭密
北京理工大学光电工程系 卢英威电脑编程技巧与维护 1999.1 P30Visual C++应用框架提供的强大功能,为我们的程序开发提供了极大的方便,利用其应用生成器可以很轻松地生成应用程序的框架.许多常用功能,例如文档的创建,文件的打开,保存等操作的大部分代码都由应用框架来完成.这些操作对于开发软件的用户而言,是透明的. Microsoft公司的设计Visual C++的初衷是尽量向用户提供尽可能转载 2010-05-20 14:40:00 · 644 阅读 · 0 评论 -
大端(Big Endian)与小端(Little Endian)详解
<br />大端(Big Endian)与小端(Little Endian)详解<br /><br />【大端(Big Endian)与小端(Little Endian)简介】<br />Byte Endian是指字节在内存中的组织,所以也称它为Byte Ordering,或Byte Order。 <br />对于数据中跨越多个字节的对象, 我们必须为它建立这样的约定:<br />(1) 它的地址是多少?<br />(2) 它的字节在内存中是如何组织的?<br />针对第一个问题,有这样的解释:<br />转载 2010-07-19 16:44:00 · 564 阅读 · 0 评论 -
CreateDIBSection
函数功能:该函数创建应用程序可以直接写入的、与设备无关的位图(DIB)。该函数提供一个指针,该指针指向位图位数据值的地方。可以给文件映射对象提供句柄,函数使用文件映射对象来创建位图,或者让系统为位图分配内存。 函数原型:HBITMAP CreateDIBSection(HDC hdc,CONST BITMAPINFO *pbmi,UINT iUsage,VOID** ppvBits,H转载 2010-05-24 18:04:00 · 1115 阅读 · 0 评论