- 博客(34)
- 收藏
- 关注
转载 DirectShow的色彩空间
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F = r [ R ]
2009-06-09 10:03:00
562
转载 VC多线程编程
【转】VC多线程编程1一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时
2008-10-20 11:45:00
668
转载 extern C 解释
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代
2008-06-16 16:53:00
1231
1
转载 #pragma 预处理指令详解[转载]
在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #
2008-06-16 16:49:00
494
转载 COM组件设计与应用(十八)——属性包
http://www.vckbase.com/code/downcode.asp?id=2785 下载源码一、前言 书接上回,本回着落在介绍属性包 IPersistPropertyBag 接口的实现方法和调用方式。属性包,是以“名称 - 值”的方式提供组件持续性的支持,而“名称 - 值”恰恰又适合于用文本方式来表现。下面的片段是在 HTML 中插入 Microsoft MonthVie
2008-06-12 16:16:00
580
转载 COM 组件设计与应用(十七)——持续性
http://www.vckbase.com/code/downcode.asp?id=2784 下载源码一、前言 我们写程序,经常需要实现这样的需求:例一、程序运行产生一个窗口,用户关闭的时候需要记录窗口的位置,以便下次运行时保持位置不变;例二、由于程序运行时间很长,今天执行一部分,明天继续执行。那么在下次运行前要恢复前次的状态;... ... ... ...智慧的
2008-06-12 16:13:00
636
1
转载 COM组件设计与应用(十六)连接点(vc.net)
http://www.vckbase.com/code/downcode.asp?id=2776 下载源码一、前言 上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了。二、原理图一、连接点组件原理图。左侧为客户端,右侧为服务端(组件对象) 看着好复杂呀......呵呵,其实简单的紧:(注1)1、一个 COM 组件,允许有多个连接点对象(ICo
2008-06-12 16:11:00
788
转载 COM组件设计与应用(十五)连接点(vc6.0)
http://www.vckbase.com/code/downcode.asp?id=2775 下载源码一、前言 上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了。二、原理图一、连接点组件原理图。左侧为客户端,右侧为服务端(组件对象) 看着好复杂呀......呵呵,其实简单的紧:(注1)1、一个 COM 组件,允许有多个连接点对象(ICo
2008-06-12 16:09:00
573
转载 COM组件设计与应用(十四)事件和通知(vc.net)
http://www.vckbase.com/code/downcode.asp?id=2753 下载源码一、前言 我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者; 我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者; 我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者; ... .
2008-06-12 16:06:00
978
原创 COM组件设计与应用(十三)事件和通知(VC6.0)
http://www.vckbase.com/code/downcode.asp?id=2752 下载源代码一、前言 我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者; 我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者; 我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者; ...
2008-06-12 16:02:00
622
转载 COM组件设计与应用(十二)错误与异常处理
作者:Winter 用STL快速编写ini配置文件识别类 1 设计需求: 2 设计实现: 3 具体使用 ini文件是技术人员经常用到的一种系统配置方法,如何读取和快速识别ini文件中的内容实现起来比较繁琐。STL强大的功能在于能快速的实现排序、查找、 识别等功能。本文通过ST
2008-06-12 16:00:00
569
原创 COM 组件设计与应用(十一)IDispatch 及双接口的调用
http://www.vckbase.com/code/downcode.asp?id=2744 下载源代码一、前言 前段时间,由于工作比较忙,没有能及时地写作。其间收到了很多网友的来信询问和鼓励,在此一并表示感谢。咳......我也需要工作来养家糊口呀...... 上回书介绍了两种方法来写自动化(IDispatch)接口的组件程序,一是用 MFC 方式编写“纯粹”的 I
2008-06-12 15:55:00
1091
转载 COM组件设计与应用(十)IDispatch 接口 for vc.net
http://www.vckbase.com/code/downcode.asp?id=2735 下载源代码一、前言 终于写到了第十回,我也一直期盼着写这回的内容耶,为啥呢?因为自动化(automation)是非常常用、非常有用、非常精彩的一个 COM 功能。由于 WORD、EXCEL 等 OFFICE 软件提供了“宏”的功能,就连我们使用的VC开发环境也提供了“宏”功能,更由于
2008-06-12 15:54:00
637
转载 COM组件设计与应用(九)IDispatch 接口 for vc6.0
http://www.vckbase.com/code/downcode.asp?id=2734 下载源代码一、前言 终于写到了第九回,我也一直期盼着写这回的内容耶,为啥呢?因为自动化(automation)是非常常用、非常有用、非常精彩的一个 COM 功能。由于 WORD、EXCEL 等 OFFICE 软件提供了“宏”的功能,就连我们使用的VC开发环境也提供了“宏”功能,更由于
2008-06-12 15:52:00
793
转载 COM组件设计与应用(八)实现多接口
http://www.vckbase.com/code/downcode.asp?id=2729 下载源代码一、前言 从第五回开始到第七回,咱们用 ATL 写了一个简单的 COM 组件,之所以说简单,是因为在组件中,只实现了一个自定义(custom)的接口 IFun。当然如果想偷懒的话,我们可以把 200 个函数都加到这一个接口中, 果真如此的话,恐怕就没有人喜欢使用我们这个组件了
2008-06-12 15:08:00
537
转载 COM 组件设计与应用(七)编译、注册、调用[转帖]
一、前言 上两回中,咱们用 ATL 写了第一个 COM 组件程序,这回中,主要介绍编译、注册和调用方法。示例程序你已经下载了吗?如果还没有下载,vc6.0 的用户点这里,vc.net 的用户点这里。二、关于编译 2-1 最小依赖 “最小依赖”,表示编译器会把 ATL 中必须使用的一些函数静态连接到目标程序中。这样目标文件尺寸会稍大,但独立性更强,安装方便;反之
2008-06-12 14:53:00
603
转载 COM 组件设计与应用(六)用 ATL 写第一个组件
http://www.vckbase.com/code/downcode.asp?id=2721 下载源代码一、前言 1、与 《COM 组件设计与应用(五)》的内容基本一致。但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对。 2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己
2008-06-12 14:49:00
514
转载 COM 组件设计与应用(五)用 ATL 写第一个组件[转]
http://www.vckbase.com/code/downcode.asp?id=2720 源代码下载一、前言 1、如果你在使用 vc5.0 及以前的版本,请你升级为 vc6.0 或 vc.net 2003; 2、如果你在使用 vc6.0 (ATL 3.0)请阅读本回内容; 3、如果你在使用 vc.net(ATL 7.0)请阅读下回内容;(当然读读本文内容也不错)
2008-06-12 14:43:00
680
转载 COM组件设计与应用(三)____数据类型[转]
一、前言 上回书介绍了GUID、CLSID、IID和接口的概念。本回的重点是介绍 COM 中的数据类型。咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:“饭要一口一口地吃”;老子语:“心急吃不了热豆腐”,孙子云:“走一步看一步吧” ...... 先掌握必要的知识,将来写起程序来才会得心应手也:-) 走入正题之前,请大家牢牢记住一条原则:COM 组件是运行在分布式环
2008-06-12 14:33:00
492
转载 COM组件设计与应用(二)
一、前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了。那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 Excel 呢?启动后,又如何让 Excel 自己去读入、解析、显示 xls 数据呢?二、CLSID 概念 有一个非常简单的解决方案,那就是在对象数据的前
2008-06-12 13:42:00
491
原创 COM 组件设计与应用(一)起源及复合文件[转贴]
一、前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些OLE的技术吧......”,当时我心里就寻思 :“开什么玩笑?搭积木方式写程序?再过100年吧......”,但作为一名听话的好学生,我开始在书店里“踅摸”(注1)有关OLE的书籍(注2)。功夫不负有心人,终于买到了我的第一本COM书《OLE2 高级编程技术》,这本800
2008-06-12 13:40:00
595
原创 关于 const 指针
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以
2008-06-05 17:22:00
485
原创 骨骼动画解释(转)
关于骨骼动画及微软示例Skinned Mesh的解析骨骼动画是D3D的一个重要应用。尽管微软DXSDK提供了示例Skinned Mesh,但由于涉及众多概念和技术细节,示例相对于初学者非常复杂,难以看懂。在此,提供一些重要问题评论,以使初学者走出迷局,顺利上手。文中所述都是参照各种资料加上自己的理解,也有可能出些偏差,有则回贴拍砖,无则权当一笑。 一 骨骼动画原理原理方面在网上资料比较多
2008-03-27 12:55:00
2384
1
原创 SetWindowsHookEx函数详解
SetWindowsHookEx-HOOK 钩子详细介绍 基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出
2008-03-19 14:45:00
6127
1
原创 [转]由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题
我们用 VS 2005 编写非托管的程序, 在一台未安装 .net 开发环境的机器上运行会出现"由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题"。开始时还以为必须要安装 .net Framework 2.0 , 然后安装了 .net Framework 2.0 。发现仍然报错。此时晕了, 这是为什么呢? 网上一查: 才知道是缺少 DLL 文件, 可是我的
2008-03-19 04:25:00
1041
原创 再论指针
(1)平常的调用如果传递的是指针参数的话.比如void a (int * a){ *a = 3; //这样则改变了参数的值.}因为a代表的是实参中的地址, 改变*a就代表改变实参地址中的值..但是void a(int *a){ int i = 2; int* t = &i; a = t;}这样是不会改变的..这样只是改变了指针形参a的指向.注意"形参"两个字..因为当进
2008-03-17 13:15:00
429
原创 D3DXVec3TransformNormal()和D3DXVec3TransformCoord() (转)
坐标和向量是有区别的:向量的第四维数值是0,坐标的第四维数值是1 向量 = 两个坐标的差值 第四维同样做减法,结果是0 向量的坐标变换用D3DXVec3TransformNormal,点用D3DXVec3TransformCoord。D3DXVec3Transform和D3DXVec3TransformCoord相似,区别在于后者变换后将
2008-03-06 10:55:00
1912
1
原创 视图空间变换
一直被这个问题所困扰.... 原来在视图中,世界坐标系的位置其实是确定的,要想旋转或移动一个物体,既可以通过改变该物体在世界坐标系中的位置来改变,g_pDevice->SetTransform(D3DTS_WORLD,&mx_world); 还可以通过移动照相机来改变...一般主角的移动都是通过照相机的改变来实现.. 要改变照相机,必须计算视图空间变换矩阵.. 先看书上的原话.世界空
2008-02-16 18:18:00
1320
原创 关于纹理坐标
自己理解的...不对的话望各位不吝赐教. 将纹理贴图贴到模型里,更新顶点结构 struct Vertex{ Vertex(){} Vertex( float x, float y, float z, float nx, float ny, float nz, float u, float v) { _x = x; _y = y; _z = z; _nx = nx;
2008-02-11 20:15:00
939
原创 [转] 频率
电脑中的频率 随着电脑的日益普及,我们随时都会听到“频率”这个技术参数,它是衡量系统运行速度的一个重要指标,频率高,说明系统运行速度快,但不同设备有不同的频率,使大家一头雾水,令人搞不清楚是咋回事儿,如Hz(Hertz,赫兹)、KHz(千赫兹)、MHz(兆赫兹),GHZ(吉赫兹)。面对众多的频率,你先不要着急,看看下面的文字,你就会明白是咋回事了。 小知识:频率 频率是指1秒钟内发生的脉冲信号的周
2007-12-21 09:24:00
547
原创 [转] 帧的解释
网络上的帧 数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题 。
2007-12-21 09:23:00
772
转载 Windows编程学习中..
1, 得到HINSTANCE程序句柄在WM_CREATE时,lParam是指向CREATESTRUCT结构的指针.HINSTANCE instance = ((LPCREATESTRUCT)lParam)->hInstance;HINSTANCE instance = GetWindowLong(hwnd, GWL_HINSTANCE);2, 得到子窗口ID/HWNDint childID =
2007-12-05 11:55:00
579
原创 保护模式和实模式
从80386开始,cpu有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就运行在保护模式。 实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。由8086CPU是16位寄存器,而地址总线却有20根,所以该模式下CPU是通过一个段地址:偏移地址来表示,任何CPU都能工作在8
2007-12-05 11:33:00
590
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人