自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

转载 MFC命名规则

MFC命名规则 Windows类型样本变量MFC类样本变量HWNDhWnd;CWnd*pWnd;HDLGhDlg;CDialog*pDlg;HDChDC;CDC*pDC

2009-06-06 23:32:00 1181

原创 C语言当中位段的使用

   位段以位为单位定义结构体(或共用体)中成员所占存储空间的长度。含有位段的结构体类型称为位段结构。   位段结构也是一种结构体类型,只不过其中含有以位为单位定义存储长度的整数类型位段成员。采用位段结构既节省存储空间,又可方便操作。位段结构中位段的定义格式为:   unsigned :例如:struct bytedata{    unsigned a:2;    /*位段a,

2009-05-20 10:33:00 372

原创 利用宏扩展提高代码的可读性

上周看了一下ffmpeg,在ffmpeg.c->main()->avcodec_register_all()中看到这样一些代码:REGISTER_DECODER (AASC, aasc);REGISTER_DECODER (AMV, amv);REGISTER_ENCDEC (ASV1, asv1);REGISTER_ENCDEC (ASV2, asv2);REGISTER_DECODER

2009-05-13 17:34:00 545

转载 讲讲volatile的作用

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:     1). 并行设备的硬件寄存器(如:状态寄存器)     2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic var

2009-05-11 14:31:00 442

原创 动态内存分配

前段调试遇到内存不够的情况,所以今天学习了一下动态内存分配的知识。   动态存储分配函数(stdlib.h)typedef unsigned int size_t;void *calloc(size_t num, size_t size);分配num个大小为size字节的空间,分配成功返回首地址,不成功返回0void free(void * ptr);释放ptr指向的存储空间(ptr只能是mall

2009-05-01 20:53:00 903

原创 OnSysCommand 函数

OnSysCommand 函数  OnSysCommand()这个函数主要是截获控制命令的,msdn上的解释如下:The framework calls this member function when the user selects a command from the Control menu, or when the user selects the

2009-04-26 12:08:00 589

转载 C中的预编译宏定义

在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由一

2009-04-08 19:36:00 721

转载 OutputDebugString()

坚定的 Win32 开发人员可能对 OutputDebugString() API 函数比较熟悉,它可以使你的程序和调试器进行交谈。它要比创建日志文件容易,而且所有“真正的”调试器都能使用它。应用程序和调试器交谈的机制相当简单,而本文将揭示整件事情是如何工作的。本文首先是由以下事件促使的,我们观察到 OutputDebugString() 在管理员和非管理员用户试图一起工作或游戏时并不总是能可

2009-04-07 21:31:00 11171 6

原创 VC中TRACE

VC中TRACETRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消失了,从而帮助你调试也在RELEASE的时候减少代码量。使用非常简单,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",333);同样还存在TRACE0,TRACE1,TRA

2009-04-03 19:15:00 624 2

原创 动态链接库 dll

    链接库分为静态链接库和动态链接库,而动态链接库在使用时,又进一步分为装载时链接和运行时链接。装载时链接是指该动态链接库是在程序装入时进行加载链接的,而运行时链接是指该动态链接库是在程序运行时执行LoadLibrary(或LoadLibraryEx,下同)函数动态加载的。因此,由于动态链接库有这两种链接方式,所以在编写使用DLL的程序时,就有了两种可选方案。     可能有人会问

2009-03-31 22:02:00 1921 1

原创 动态连接库 .dll

本文一、二两部分适用于对DLL的基本制作方法已经了解,或手头有关于DLL制作方法的书籍的读者.对于初次接触DLL制作的读者,建议您先按三中的步骤建立一个自己的DLL并在另一个应用程序中成功的调用它之后再阅读一、二. ---- DLL可以分为两个不同的类别:用C/C++(不用对象)编写的基于API的传统DLL和基于MFC对象的DLL. 一.两种类型的比较: ---- 1. 基于M

2009-03-29 14:51:00 504

转载 VC++图象处理编程(二)

BMP图像显示的特效操作在上面的学习基础上,我们可以进一步深化,学习并掌握图像特效显示技术。有了这种技术,可以用来在今后的项目开发中美化我们的软件界面,提高软件的视觉效果。在如今的商业软件中,几乎每一幅图像的显示都采用了图像特效显示,例如读者比较熟悉的Windows的屏幕保护程序就采用了各种各样的图像特效显示,使人感到眼花缭乱和耳目一新。专业图像处理软件更是提供了丰富的显示方式供用户使用,可以

2009-03-21 14:30:00 909 3

转载 VC++图象处理编程(一)

基本概念前言数字图像处理技术与理论是计算机应用的一个重要领域,许多工程应用都涉及到图像处理,一直有一个强烈的愿望,想系统的写一个关于数字图像处理的讲座,由于工作学习很忙,时至今日才得以实现。  “图”是物体透射光或反射光的分布,“像”是人的视觉系统对图的接收在大脑中形成的印象或认识。图像是两者的结合。人类获取外界信息是靠听觉、视觉、触觉、嗅觉、味觉等,但绝大部分(约80%左右)来自视觉

2009-03-21 14:29:00 2073 3

原创 MFC中SetWorldTransform函数中XFORM结构体的使用

SetGraphicsMode  函数功能:该函数为指定的设备环境设置图形模式。  函数原型:int SetGraphicsMode(HDC hdc, int iMode);  参数:  hdc:指向设备环境的句柄。  iMode:指定图形模式,该参数可为下列值之一:  GM_COMPAIBLE:设置与16位Windows相兼容的图形模式,这是缺省的模式。如果指定此值,应用程序只能通过调用设置

2009-03-21 14:18:00 4001 3

转载 剖析MFC六大关键技术 六

把对句柄的操作转换成对CWnd对象是很重要的一件事,因为AfxWndProc只是一个全局函数,当然不知怎么样去处理各种windows窗口消息,所以它聪明地把处理权交给windows窗口所关联的MFC窗口对象。现大,大家几乎可以想象得到AfxCallWndProc要做的事情,不错,它当中有一句:pWnd->WindowProc(nMsg,wParam,lParam);

2009-03-18 19:43:00 765

原创 MFC六大关键技术之 五 消息映射与命令传递

题外话:刚开始学视窗程序设计的时候,我就打印了一本Windows消息详解,里面列举了各种已定义消息的意义和作用,共10多页,在编程的时候翻翻,有时觉得很受用。我发觉很多编程的朋友,虽然每天都面对消息,却很少关注它。C++程序员有一个通病,很想写“自己”的程序,即每一行代码都想自己写出来。如果用了一些库,总希望能完全理解库里的类或函数是怎么一回事,否则就“不踏实”。对于消息,许多朋友只关心常用的几个

2009-03-18 19:41:00 472

原创 剖析MFC六大关键技术 三 动态创建

动态创建就是运行时创建指定类的对象,在MFC中大量使用。如框架窗口对象、视对象,还有文档对象都需要由文档模板类对象来动态的创建。我觉得这是每个MFC的学习者很希望理解的问题。初次接触MFC的时候,很容易有这样的迷惘。MFC的几大类不用我们设计也就罢了,但最疑惑的是不用我们实例化对象。本来最直观的理解就是,我们需要框架的时候,亲手写上CFrameWnd myFrame;需要视的时候,亲自打上CVie

2009-03-18 19:39:00 338

原创 剖析MFC六大关键技术 四 永久保存(串行化)

先用一句话来说明永久保存的重要:弄懂它以后,你就越来越像个程序员了! 如果我们的程序不需要永久保存,那几乎可以肯定是一个小玩儿。那怕我们的记事本、画图等小程序,也需要保存才有真正的意义。 对于MFC的很多地方我不甚满意,总觉得它喜欢拿一组低能而神秘的宏来故弄玄虚,但对于它的连续存储(serialize)机制,却是我十分钟爱的地方。在此,可让大家感受到面向对象的幸福。 MFC的连续存储(serial

2009-03-18 19:39:00 630 2

原创 剖析MFC六大关键技术 二 运行时类型识别(RTTI)

运行时类型识别(RTTI)即是程序执行过程中知道某个对象属于某个类,我们平时用C++编程接触的RTTI一般是编译器的RTTI,即是在新版本的VC++编译器里面选用“使能RTTI”,然后载入typeinfo.h文件,就可以使用一个叫typeid()的运算子,它的地位与在C++编程中的sizeof()运算子类似的地方(包含一个头文件,然后就有一个熟悉好用的函数)。typdid()关键的地方是可以接受两

2009-03-18 19:36:00 317

原创 剖析MFC六大关键技术 一

MFC的六大关键技术包括:MFC程序的初始化过程。运行时类型识别(RTTI)。动态创建。永久保存。消息映射。消息传递。MFC程序的初始化过程1、设计一个简单完整MFC程序,产生一个窗口。当然这不能让AppWizard自动为我们生成。我们可以在Win32 Application工程下面那样写:#include class MyApp : public CWinApp{public

2009-03-18 19:35:00 310

原创 Visual C++窗体设计技巧集

如何制作透明窗体   使用SetLayeredWindowAttributes可以方便的制作透明窗体,此函数在w2k以上才支持,而且如果希望直接使用的话,可能需要下载最新的SDK。不过此函数在w2k的user32.dll里有实现,所以如果你不希望下载巨大的sdk的话,可以直接使用GetProcAddress获取该函数的指针。   SetLayeredWindowAttributes的函

2009-03-12 20:35:00 381

原创 全屏的两种方法

下面只是全屏的两种方法:(实际可能还有很多方法噢)     1)用SetWindowPlacement(...)        2)用SetWindowPos(...)  这里对这两种方法均举例给出.一、比如若想在程序运行时候就要是屏的,可试着写下的代码,(在CMainFrame::OnCreate()中)……CRect winRect,clientRect;Get

2009-03-12 20:00:00 2103

原创 VC中动态添加控件

动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件:为了对照,我们先来看一下静态控件的创建。放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。静态控件不需要调用

2009-03-11 21:20:00 335

原创 上拉电阻

上拉电阻:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。2、OC门电路必须加上拉电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供

2009-03-11 18:21:00 306

原创 #ifndef与#pragma once

 为了避免同一个文件被include多次1   #ifndef方式2   #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:     #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__    ... ... // 一些声明语句    #endif    方式二:

2009-03-09 13:03:00 310

原创 一步一步学STL标准模板库

 list 的使用在使用list必须包括头文件#include ,1)、如何定义一个list对象#include int main (void){ list cList; //声明了list模板类 的一个实例}2)、使用list的成员函数push_back和push_front插入一个元素到list中cList. push_back(‘a’); //把一个对象放到一

2009-02-24 22:01:00 268

原创 CRC校验原理

CRC校验原理 1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。3、CRC码集选择

2009-02-22 21:43:00 1213

原创 批处理文件编写

批处理文件编写  批处理批处理文件是以.bat或者.cmd为扩展名的文件,其中可以包含各种命令。批处理有的时候是非常有用的,具体我就不举例子了。马上进入正题,下面我们看看批处理文件的一些知识。Application Error:一般程序返回0表示没有发生问题。否则返回1或者其他数字来表示有错误发生。批处理基本指令:Call:主要工作是从一个批处理文件调用其他的批处理文件,可以传递参数给另外的批

2009-02-21 01:10:00 857 1

原创 VC导出导入数据到Excel中(实例)

//在Excel 2000环境下首先利用Visual C++ 6.0,建立一个MFC基于对话框的工程项目,共享DLL,Win32平台。工程名称ExcelTest。在主对话框中加入一个按钮, ID IDC_EXCELTEST Caption Test Excel 双击该按钮,增加成员函数void CExcelTestDlg::OnExceltest()。 在BOOL CExcelTestApp:

2009-02-20 21:04:00 422

原创 标准c++中主要有四种强制转换类型运算符:

标准c++中主要有四种强制转换类型运算符:    const_cast,reinterpret_cast,static_cast,dynamic_cast等等。   1)static_cast(a)    将地址a转换成类型T,T和a必须是指针、引用、算术类型或枚举类型。    表达式static_cast(a), a的值转换为模板中指定的类型T。在运行时转换过程中,不进行

2009-02-17 15:58:00 300

原创 CArchive类实现数据的缓冲区读写

MFC 提供CArchive类实现数据的缓冲区读写,同时定义了类对象的存储与读取方案。 以下对CArchvie 的内部实现作分析。 一.概述 CArchive使用了缓冲区,即一段内存空间作为临时数据存储地,对CArchive的读写都先依次排列到此缓冲区,当缓冲区满或用户要求时,将此段整理后的数据读写到指定的存储煤质。 当建立CArchive对象时,应指定其模式是用于缓冲区读,还是用于缓冲

2009-02-17 14:27:00 1212

原创 使用::std::vector作为管理动态数组的优先选择

 使用::std::vector摘要: 本文介绍了C++标准库中的容器类vector,分析了它的优点,并且建议在应用程序中使用它作为动态数组的优先选择,而不是MFC的CArray在一些使用 MFC 的程序中,经常看到许多程序使用 CArray的设计问题,造成使用它的代码的复杂化,增加了维护难度。因此建议使用 ::std::vector。另外,也看到一些程序在用 malloc/reall

2009-02-17 09:45:00 299

原创 MFC里常用宏的含义

AND_CATCHAND_CATCH     AND_CATCH(exception_class,exception _object_point_name)    说明:定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特别原因的更多消息。在AND_

2009-02-16 21:54:00 294

原创 MFC中对话框的数据交换(DDX)和数据校验(DDV)

MFC中对话框的数据交换(DDX)和数据校验(DDV)DDX : dialog data exchangeDDV : dialog data validation文档描述MFC中的DDX DDV机制,如何使用DDX_和DDV_ 函数和定制自己的DDX_ ,DDV_函数;Dialog Data Exchange概要:对话框的数据交换不依赖于任何宏来实现,全部依赖于C++代码实现,唯一特别之处在于

2009-02-16 21:25:00 1120

原创 active X控件注册

  使用ActiveX控件可快速实现小型的组件重用、代码共享,从而提高编程效率,开发成本。但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows中注册。注册ActiveX控件一般来说有六种途径,它们有各自的优点,运用范围也不同。  Regsvr32.exe注册    Regsvr32.exe位于Windows目录的system子目录下。点击Windows的“

2009-02-16 19:04:00 2435

原创 INI文件编程

 在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:  一.将信息写入.INI文件中.  1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCT

2009-02-16 17:17:00 298

原创 sql server ---存储过程

  问题  当sql server启动时,我很想运行一个存储过程。有没有一种方法可以在每次SQL Server服务启动时都会自动执行这个存储过程呢?  专家解答  sql Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行。这是一个很不错的选择,它可以用于多种多样的用途。比如,你可能在你的数据库

2009-02-16 16:33:00 291

原创 #ifdef _DEBUG

#ifdef _DEBUG virtual void AssertValid() const; //assert(断言)valid(有效的,正确的)virtual void Dump(CDumpContext& dc) const; //存储上下文#endif这两个函数是调试用的,第一个函数检查可用性,即是否有效 第二个函数如果未更改的话,最终调用的是Cwnd::Dump(); 输出窗口类名,标题

2009-02-16 16:27:00 332

字模3 v3.91 含注册机

字模3(安装版) v3.91 含注册机

2010-08-26

数字信号处理(第三版) 习题解答 程佩青

信号处理 习题解答 希望对各位有帮助

2009-09-20

html教程 HTML.chm

讲解html 基础知识 对初学者 帮助极大

2009-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除