代码改变世界

关于ERROR LNK 2005错误

2008-08-20 14:53 by libiver, 337 阅读, 0 推荐, 收藏, 编辑
摘要:关于ERROR LNK 2005错误相信很多人对这个错误是一点也不陌生,甚至有些害怕,我也一样。其实自己遇到过这样的问题,也每次都解决了这样的问题,但关键是自己没总结,所以总是再遇到再改,很烦人,查资料也麻烦。现在有时间了总结下。遇到问题我最喜欢F1,所以还是先看MSDN是怎么说的:To fix by checking the following possible causes1. Mixing static and dynamic libraries when also using /clr. 2. The symbol is a packaged function (created by. 阅读全文

Direct 3D学习笔记(四)——纹理映射

2008-07-30 13:47 by libiver, 345 阅读, 0 推荐, 收藏, 编辑
摘要:Direct 3D学习笔记(四)——纹理映射为了使三维物体的表面看起来更真实,在Direct 3D中提供了在物体表面绘制纹理的功能。在Direct 3D中提供了总共8层纹理贴图,从0到7,纹理贴图是一张二维图片,也是以COM形式存在,比如常见的.jpg、.bmp和tga等位图文件都可以作为纹理贴图。正是因为它是一张二维的图片,故在将纹理贴图映射到三维物体表面的时候,需要有个纹理坐标。在设置纹理坐标的时候,要区分纹理的实际坐标和相对坐标。一般情况下,所以的纹理元素相对坐标的地址都在[0.0,1.0]这个范围内,注意可以通过设置地址范围不在这个二维区间来获得特殊的效果。在下图中,正在使用的纹理.. 阅读全文

Direct 3D学习笔记(三)——光照与材质

2008-07-28 17:52 by libiver, 290 阅读, 0 推荐, 收藏, 编辑
摘要:Direct 3D学习笔记(三)——光照与材质现实世界中物体的颜色是一个复杂的系统,物体在不同的光照下,可能呈现在我们面前的就是不同的颜色。根据物理中的光学知识,物体在各种环境光照下,根据物体自身特性,吸收其中一些光线(其实吸收的是光线的能量),而将自己不能吸收的光线反射回去,当我们的眼睛捕捉到这些被反射的光线后,就可以感觉到物体的外观形状和物体表面的色泽。在计算机系统中为了表示颜色,通常是由RGB三种颜色来混合得到不同的颜色值,RGB的位数越大表示的颜色数越多,当然这知识理论值,并且当达到了一定的极限后,人眼也无法分辨,就没有意义了。由于颜色是由波长决定的,所以可以将任一种颜色表示为:λ . 阅读全文

Direct3D学习笔记(二)——顶点坐标变换

2008-07-23 14:24 by libiver, 1015 阅读, 0 推荐, 收藏, 编辑
摘要:Direct3D学习笔记(二)——顶点坐标变换在Direct3D中,一个三维物体是被分成许许多多的三角形面来表示,而且是需要使用三维坐标来描述,但实际上显示器是一个二维表面,所以要想在二维显示器上显示三维物体就必须先将空间物体的三维坐标转换为二维坐标。在Direct3D中有四种坐标,分别为1、 世界坐标系三维物体被划分为众多的三角形面表示后,物体表面的图行方位可以通过三角形面的顶点来确定,而为了从数值上定量三维图形的方位数据,需要引入一个世界坐标系(Direct3D中使用的是笛卡尔左手坐标系),这样就可以准确地用一个坐标(x,y,z)来定位,以实现图形到数据的转换。世界坐标系是Direct3. 阅读全文

DirectX 3D学习笔记(一)

2008-07-21 14:11 by libiver, 289 阅读, 0 推荐, 收藏, 编辑
摘要:DirectX 3D学习笔记(一)Ⅰ、渲染状态设备的渲染状态控制Direct3D设备的光栅化组件的行为。通过改变光栅渲染状态属性,可以设置使用何种方式来进行渲染着色,以及如何进行雾化等。在Direct3D中我们可以通过IDirect3DDevice9::SetRenderState()函数来设置渲染状态。HRESULT SetRenderState(D3DRENDERSTATETYPE State, DWORD Value); 通过枚举函数SetRenderState中的第一个参数D3DRENDERSTATETYPE,可以得到所有可能的渲染状态。 ① 着色模式Direct3D中的物体表面是有很 阅读全文

Thinking in C++读书笔记(一)

2008-07-17 14:42 by libiver, 175 阅读, 0 推荐, 收藏, 编辑
摘要:早就想有时间能静下来好好拜读下Bruce Eckel的Thinking in C++这本大作,电子版的书在我原来机子的硬盘上躺了快一个春秋,在毕业的时候居然连灰尘都没来得及给她扫扫就把她陪嫁送人了。今天在去CSDN上逛的时候,突然发现那个熟悉的字眼出现在了我的视线中,想想这段时间估计不忙,所以就重新把她Down下来,也好陪陪我,希望能让我找到思念之外的一份快乐。解压后就迫不及待地翻阅第一章——对象的演进(Introduction to Objects),在这里重温着我对Class、Objects、OOP(Object-Oriented Programming)的认识,也启发着我,加深那些概念的 阅读全文

基本的Direct3D程序结构

2008-07-04 14:48 by libiver, 237 阅读, 0 推荐, 收藏, 编辑
摘要:近来开始学习Direct3D编程,希望像当时学习DirectShow一样,在这里记下我学习的过程。下面是我写的一个基本的Direct3D的框架程序,适合入门。//// D3DBasicStruct.cpp//// Written by Leezhm, 4th July, 2008// Contact : Leezhm@126.com#pragma once#include <windows.h>#include <tchar.h>#include <strsafe.h>#include <d3d9.h>#include <d3dx9.h&g 阅读全文

关于WM_PAINT消息

2008-07-02 19:05 by libiver, 187 阅读, 0 推荐, 收藏, 编辑
摘要:关于WM_PAINT消息在WindowsAPI编程中,WM_PAINT是Windows窗口的一个重要消息,应用程序就是通过响应这个消息来完成窗口的绘制。TheWM_PAINTmessageisgeneratedbythesystemandshouldnotbesentbyanapplication.Thesystemsendsthismessagewhentherearenoothermessagesintheapplication'smessage queue注意:WM_PAINT消息是由系统产生,非要等应用程序的消息队列为空时才发送WM_PAINT消息。其实系统会在很多的不同的机制 阅读全文

Windows下MPlayer编译详细步骤

2008-01-21 19:32 by libiver, 427 阅读, 0 推荐, 收藏, 编辑
摘要:Windows下MPlayer编译详细步骤学习在windows下编辑MPlayer,参考了http://blog.sina.com.cn/s/blog_465bdf0b010000o6.html,在这里谢谢这位兄弟了,你让我节省了不少时间。当然还要介绍一个好的网站:http://oss.netfarm.it/mplayer-win32.php,在这里可以得到很多的帮助。我的机子是: 关于编译环境配置,参见ffmpeg中的配置介绍。关于directx的头文件,我是直接将我机子上安装的dx的include中的所以头文件都复制到了c:/mingw/include中。开始下载安装一些MPlayer编译 阅读全文

FFMpeg中的实例output_example.c的编译

2008-01-18 21:25 by libiver, 944 阅读, 0 推荐, 收藏, 编辑
摘要:FFMpeg中的实例output_example.c的编译关于ffmpeg在windows上的编译,在www.ffmpeg.com.cn上有详细的讲解,在成功编译好ffmpeg后,便在MSVC中编译ffmpeg自带的实例output_example.c。首先自己在MSVC下建立一个空的控制台的应用程序,将output_example.c加入到工程中。由于在MSVC中是使用编译ffmpeg时生产的.lib和.dll文件,所以我们需要连接它们。在这里我们需要avcodec-51.lib、avformat-51.lib和avutil-49.lib这三个静态库,故在我们编译工程之前就将它们加到工程中. 阅读全文

关于const于pointer

2008-01-16 23:29 by libiver, 217 阅读, 0 推荐, 收藏, 编辑
摘要:这段时间在复习C++基础知识,会不定期写一些重要的总结,算是这段时间学习过程。1、关于const与pointer A、指向const的pointer(指针常量—是指对于指针来说,指向的是常量,实际是不是常量,并不一定) eg:int age = 23; int num = 100; const int * pAge = &age; *pAge = 50; // 非法的,不能使用 age = 50; // 正确的 pAge = &num;//正确的。 注意:pAge的声明并不意味着它指向的值实际上就是一个常量,只是意味着对pAge而言,这个值是一个常量,并且pAge自己不是一个常 阅读全文

复习笔记-数据类型2

2008-01-10 23:35 by libiver, 136 阅读, 0 推荐, 收藏, 编辑
摘要:1、struct Struct在C++语言中既可以有成员变量,也可以有成员函数的,这是与C语言的区别Struct Array(结构体数组):就是数组元素为一个结构体eg:struct Person{ char Name; int Age; char Sex; char Address[50];};Person PersArr[2] = { // 表示元素为Person结构体的数组{“Leezhm”,24,’M’,”中国浙江金华”},{“Lizhm”,22,’F’,”中国湖北荆州”}};2、union 注意与数组、结构体的区别:Array只能够存储一个类型的多个数据Struct只能够存储不同类型 阅读全文

基础复习笔记--数据类型

2008-01-09 23:25 by libiver, 149 阅读, 0 推荐, 收藏, 编辑
摘要:下面是我复习过程中的一些笔记,比较凌乱。不过还是贴上来,算是自己学习的一个过程的记录吧1、关于cout打印int整形数和char字符串的区别: eg:int a = 25; cout<<a<<endl;在这里,我们要知道整数25和字符串“25”在存储上的区别,字符串”25”在程序的内部是分别存储’2’和‘5’这两个字符的编码(如ASCLL编码),所以cout只需要打印字符串中的各个字符即可,而整数25在程序的内部存储的是25这个数值的二进制数,不是单独的2和5。所以在打印之前,cout必须将整数形式的数字转换成字符串形式再打印。在比较printf和cout之后,我们可以 阅读全文

名称空间学习总结

2008-01-07 18:59 by libiver, 178 阅读, 0 推荐, 收藏, 编辑
摘要:1、using namespace 名称空间主要是为了解决在大的互相合作的工程中,出现像变量、函数、结构、枚举、类以及类和结构的成员的名称相互冲突的可能。Declaration region:声明区域,是可以在其中进行声明的区域。Potential scope:潜在作用域,变量的潜在作用域是从声明点开始,到其声明区域结束。由于变量必须在声明之后在能使用,因此潜在作用域比声明区域小。注意:注意变量并非在其潜在作用域中任何位置都是可见的。如,它可能被在嵌套声明区域中声明的同名变量隐藏。using 声明和using编译指令:using声明是将特定的名称添加到它所属的声明区域中。它像其他的变量一样,能 阅读全文

孙鑫VC视频学习 NO2

2008-01-03 22:42 by libiver, 156 阅读, 0 推荐, 收藏, 编辑
摘要:2008-1-3孙鑫VC视频学习 NO21、struct 和 class 在C语言中,没有class,struct中是不能有函数的 在C++中,class和struct中都可以有函数,struct可以看成是特殊的class类。 在C++中,class成员默认是private的,而struct是public 2、类(class)的构造函数 类的构造函数的作用是提供给用户对类的成员变量进行初始化的一个接口 类的构造函数在类被实例化的时候自动被调用 如果一个类没有定义任何构造函数(不论是无参还是有参构造函数),那么编译在以下三种情况下为类提供一个默认的构造函数:①、如果类有虚拟成员函数或虚拟继承父类 阅读全文

孙鑫VC教程学习笔记1

2008-01-02 20:57 by libiver, 196 阅读, 0 推荐, 收藏, 编辑
摘要:2008-1-2 孙鑫VC教程学习笔记 NO11.GetStockObject()得到画笔、画刷、字体、调色板的句柄,使用时必须用类型转换。2.什么是野指针?答:将指针指向的变量的内存释放后,此指针即变成野指针!如何避免野指针?答:将此指针指向NULL即可。p=NULL;3.创建一个完整的窗口的四个步骤SDK,1设计窗口类,2注册窗口类,3创建窗口,4显示窗口。5 消息循环4.在处理消息的回调函数中,我们一定要实现WM_PAINT和WM_DSTROY消息。前一个消息用来绘制窗口,后一个消息在我们关闭窗口时,调用PostQuitMessage这个函数。The PostQuitMessage fu 阅读全文

directshow之vs2005配置

2007-12-16 23:31 by libiver, 186 阅读, 0 推荐, 收藏, 编辑
摘要:学习directshow有一段时间了,作为过来人我是吃了很多苦的,比如环境的配置等。可这几天一直见到有人给我留言,问我关于directshow在vs 2005中的环境配置。我上了www.directshow.cn (陆老师办的),发现上面也没有补充完整,所以我就花点时间将我的配置发出来,不敢说是完全正确,但我一直是这样配置来学习directshow和Windows Media 编程的。如果有错误,欢迎大家指正,我会在确认后及时改正。(联系我:leezhm@126.com) 好了言归正传。首先,我们是要在vs 2005下编译baseclass,当然有一些问题是要我们自己来修改(可以参考我以前写. 阅读全文

老生常谈——关于将baseclass编译成Debug

2007-12-16 22:54 by libiver, 196 阅读, 0 推荐, 收藏, 编辑
摘要:老生常谈——关于将baseclass编译成Debug 这是个老话题,可我们总是犯错误,故再次提醒。当我们在2005下编写directshow的程序时,我们一定要在用2005编译baseclass时将项目配置成如下图:这样我们才是正确编译baseclass。不然可能出现一下问题,在我们用到CPosPassThru class时。(当然这只是一个例子)__thiscall CPosPassThru::CPosPassThru(char const *,struct IUnknown *,long *,struct IPin *)" (??0CPosPassThru@@QAE@PB... 阅读全文

基于MPEG-4和RTP的网络视频监控系统研究

2007-12-12 14:03 by libiver, 347 阅读, 0 推荐, 收藏, 编辑
摘要:声明:我在学习的过程中,看到一些好的文档,对我的帮助很大,在这里先感谢你们。但为了学习的方便,免得每次去找,我就转载到了我的blog上了。我无意侵犯作者的产权,如有不妥,请联系我(leezhm@126.com),我马上删除。谢谢!基于MPEG-4和RTP的网络视频监控系统研究文/北京邮电大学通信网络综合技术研究所 龚猷龙 刘勇摘 要:随着计算机、网络及多媒体通信技术的发展,视频监控在业界得到了广泛的应用,许多先进的技术被逐渐引入视频监控系统。本文采用了递进的方式,先介绍了IP网络视频监控系统的组成及其关键技术,接着阐述了MPEG-4视频流的RTP分组净荷格式。最后,在视频流的RTP传输中,着. 阅读全文

Windows网络编程杂谈

2007-12-08 17:32 by libiver, 225 阅读, 0 推荐, 收藏, 编辑
摘要:作者: 中华视频网 2005-11-07Windows网络编程杂谈关于bind: INADDR_ANY 的具体含义是,绑定到0.0.0.0。此时,对所有的地址都将是有效的,如果系统考虑冗余,采用多个网卡的话,那么使用此种bind,将在所有网卡上进行绑定。在这种情况下,你可以收到发送到所有有效地址上数据包。 例如: SOCKADDR_IN Local; Local.sin_addr.s_addr = htonl(INADDR_ANY); 另外一种方式如下: SOCKADDR_IN Local; hostent* thisHost = gethostbyname(... 阅读全文