自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

beckle_ye的专栏

美好的生活是一种态度

  • 博客(25)
  • 收藏
  • 关注

原创 IGraphBuilder::Render() 引发的错误:0x80040154 (REGDB_E_CLASSNOTREG)

最近搞毕业设计,研究起了DirectShow,看了一个网络传输MPEG视频的源码,编译运行,发现客户端接收的视频没法显示出来,但是写入的文件是可以被正确播放的。最后调试跟踪到是这一句出了问题:HRESULT hr  = m_pGB->Render(m_pSourceReader->GetPin(0));返回错误: hr 0x80040154 没有注册类一开始在MSDN上搜索错误码 没有找到0x80040154的说明,于是在Google上搜索,只搜出了10几条相关内容,看了以后,说的好像是什么DLL没有注册,

2011-04-22 00:51:00 1902

原创 指向类成员指针(仅作了解用)

<br />说明:首先本文涉及的只是对于C++的特性稍作深入了解,在实际开发中应用可能不多。纯属概念和感性认识吧!O(∩_∩)O~<br /> <br />相对于一般的指针,指向一个类成员的指针稍微有点“怪异”,不过,当你理解了其原理以后,你就不会这么觉得了。<br />对于一般的指针来说,它被定义为一个指向某个“地址”的变量,但是,对于指向类成员的指针来说,这个类并是没有被实例化的,所以,不存在真正意义上的指针,这里说的“地址”,就是相对于这个类的偏移量。<br /> <br />class Simple

2011-03-26 10:52:00 626

原创 C++中引用的使用规则

<br />1. A reference must be initialized when it is created. (Pointers can be initialized at any time.)<br />2. Once a reference is initialized to an object, it cannot be changed to refer to another object. (Pointers can be pointed to another object at any

2011-03-26 10:42:00 672

原创 枚举类型(C和C++中的差别)

<br />枚举类型是被当作常量来看待的。<br />C和C++里面常量不太一样:<br />1、 C里面常量就和普通变量没什么两样,都是在栈里面,而且是可寻址的(也就是除了不能更改以外和普通变量没有区别)   <br />2、而C++里面的常量在编译的时候被放入符号表里面,如果没有显式要求,其将是不可寻址的<br /><br />访问类中的枚举元素:类名 : : 枚举元素名<br />例如:<br />class FileAcess<br />{<br />public:<br /> enum { Wri

2011-03-26 10:40:00 1519

转载 编译《DirectShow实务精选》示例可能发生的问题及解决办法

最近看DS,找了示例想编译,结果光是这一简简单单的编译连接,都搞了我两个多小时。。。下面是转的一篇不错的帖子,基本上概括了编译demos会遇到的问题。1,strmbasd.lib下载DirectX的SDK,然后用VC编译里面的BaseClass工程,Debug版生成的。2,Largeint.lib编译DX2005年版及其以前版本的DirectShow或是其他老版本代码时,如果发现Largeint.lib找不到的连接错误,那么,直接在工程设置中删除这个库,VS2005不提供这个独立的largeint库。3,编

2011-03-26 00:32:00 754

转载 ORA-06413:连接未打开

<br />最近在用ADO连Oracle,拷贝了昨天写的一个类和字符串,明明昨天那个是可以连接上的,今天的这个却死活连不了。后来查了一下,发现是路径包含括号的问题。<br /> <br />就是你的执行程序路径包含了括号,改掉即可。<br /> <br />转载自:http://blog.csdn.net/zhpsam109/archive/2006/03/08/618860.aspx

2010-09-19 16:11:00 801

转载 error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义

<br />今天在写数据库程序,编译连接的时候,突然报了这么些错误:<br /> <br />错误 2 error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义 uafxcwd.lib<br />错误 3 error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMT

2010-09-16 13:13:00 3420

转载 /bin/sh^M: bad interpreter: No such file or directory(没有那个文件或目录)

今天在尝试写一个启动服务的时候,发现出现了这个问题,开始Google了半天,在英文社区里面看到了些解决方法,但是,好像都不管用,最后搜到了一篇很好的中文帖子,在这里和大家共享。http://blog.chinaunix.net/u2/66821/showart_1362125.html 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不

2010-07-31 20:32:00 904

原创 Linux下获取进程完整路径(包括进程名)——完整实例代码实现

最近在Linux上写一个小程序,由于接触Linux时间不长,碰到了很多问题都需要查资料,发现,相对于Windows来说,Linux的资料还是少了些(可能也是由于自己的Google方法不对吧,呵呵),比较费时间。 今天本来想实现一个功能——获取进程名(包括路径),但是,发现,网上基本没有稍微直接一点的提示。 由于本人愚笨,Linux接触不长,基本的组织结构弄的不是太清楚,通过多番资料查找,融汇总结了一下,要完成我的功能,一共有三种方式(其实,归根结底还是一种方式,那就是对/proc路径的结构要熟悉) 废

2010-07-20 20:03:00 7992

原创 CStatusBar和CStatusBarCtrl默认行为(风格)差异

因为今天在基于对话框的程序中,测试了CStatusBarCtrl和CStatusBar两种“状态栏”,发现默认的情况下,调用Create构造出来的状态栏的行为还是有不小的差异,所以在此总结出来。 首先说明这个现象,然后我再来解释原因。 现象: 当运行程序,对话框显示出来,你先将对话框的大小随意改变(最好是变大,才好看效果),然后再尝试通过size-grip改变CStatusBarCtrl对象的大小。此时你会发现,神奇的事情发生了!!!! 和你想象的不一样,它竟然会自动移动到对话框的

2010-07-09 01:26:00 2751

原创 C语言中static和extern比较

对于全局变量和局部变量,static的修饰有一点让人混淆的地方。 1、对于全局变量(全局函数),定义如下: int a = 0; 此处没有加上static修饰,但是,变量a是存放在静态存储区的。不过,变量a的可见性是所有translation unit(编译单元)。 如果将其定义改成: static int a = 0; 变量a的可见性(v

2010-05-23 20:55:00 550

原创 空参数列表的函数在C和C++的差异

对于一个“参数列表尾空”的函数来说,C和C++的“看法”是不同的。 函数声明: int fun(); 对于C来说,函数fun是任意个数的任意参数的函数;不会进行类型检查 对于C++来说,函数fun是没有参数的函数。

2010-05-22 13:31:00 617

原创 更改对话框和框架窗口图标 (VC/MFC)

一、加载图标两种方法: 1、HICON hIcon = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_APP)); 2、HICON hIcon = AfxGetApp()->LoadIcon(IDI_APP); 二、更改图标两种方法: 1、调用WIN32 API SetClassLong(); SetClassLong(m_hWn

2010-03-27 12:02:00 2300

原创 找不到Oracle驱动程序的安装例程——解决方法

今天在用ConfigDataSource配置ODBC数据源时,也遇到了这个问题,开始上网搜了搜,发现只是提了问,并没有 解决。自己也是后来试了试,才算“解决”这个问题,在这里就和大家分享。 ConfigDataSource(this->m_hWnd, ODBC_ADD_DSN,     "Oracle in OraDb10g_home1",    //问题就出在这里           

2010-03-22 23:26:00 6035 1

原创 VC中用SQLConfigDataSource配置Oracle的ODBC数据源

这几天在学习VC+Oracle方面的知识,看到点有用的东西,总结下。 当创建一个数据库产品,要给不同的机器配置ODBC的时候,不可能都像在本地一样,手动的配置ODBC数据源,所以需要一个自动的方式来解决这一问题。这时候,可以用到ODBC里的一个API:SQLConfigDataSource。 头文件#include ,引入库文件ODBCINST.LIB,动态链接库文件:ODBCCP

2010-03-22 15:03:00 2204

原创 如何更改ClassWizard添加的类名

今天写东西时,发现一个类的名字取得不是很合适,所以,想把它改掉,但,这一改还是破费了一番功夫。下面,我就来总结一下,希望对以后的朋友有所帮助。 该过程分为三步(也许很笨,但是对目前来说,还是很实用。) 一、在该工程中,删除该类1、在FileView下,将该类所关联的.h文件和.cpp文件删除2、在工程路径下,将上述文件从硬盘上删除3、再次用VC打开工程,选择ClassWizar

2010-01-19 11:03:00 882

原创 函数重载,覆盖与隐藏

 函数重载:1.  作用域相同(同一类中)2.  参数不同(类型或者个数)3.  函数名相同4.  基类关键字Virtual关键字可有可无 函数覆盖:子类覆盖父类的同名函数(虚函数),同名+同参1.  作用域不同(子类和父类)2.  参数相同3.  函数名相同4.  基类中的函数必须有virtual关键字 以上部分摘自    《C/C++

2009-12-11 01:01:00 569

原创 C++中const详解

一、对于C++中的const修饰的内部类型(build-in type)变量,除了以下几种情况,编译器是不会为其创建存储空间 a. 取一个const的地址 b. 把一个const作为一个带引用(指针)的参数传递给一个函数 c. 把它定义为extern  而当编译器不为其创建存储空间的时候,const是作为编译时常量来保存在编译器的符号表中(symboltable)的,在编译期间

2009-12-09 23:20:00 730

原创 'fd_set' redefinition winsock2.h,相关头文件条件编译处理

今天写一个TCP/IP的小程序的时候,偶然间发现一个错误工程类型:Win32 Console Application 错误如下:--------------------Configuration: TcpSer - Win32 Debug--------------------Compiling...main.cppd:/program files/microsoft visual

2009-10-29 20:49:00 2473

原创 避免重复的对象构建 ——Reference Counting(引用计数)技术

因为今天突然看到一篇帖子在讨论C++的赋值构造,也就是 operator = 的重载, 里面说到了一个“自赋值”的问题,以前自己也看过Thinking In C++中有介绍到这个问题,于是又翻起书来,重温了一遍,发现,里面介绍到了一个很重要的技术,也就是标题所说的,Reference Counting(引用计数)的技术 那么,什么是“引用计数”呢?它又有什么用呢?在我们构建对象的时候,

2009-10-27 20:58:00 996

原创 什么是对象切片(Object Slicing)?

关于对象切片Thinking in C++中有这么一段话英文原版:If you upcast to an object instead of a pointer or reference, something will happen that may surprise you: the object is “sliced” until all that remains is the sub

2009-10-19 22:14:00 4598 1

原创 C++什么时候进行迟绑定?

上一篇帖子详细讨论了迟绑定的原理,那么,什么时候编译器会进行迟绑定呢?或者编译器根据什么来决定要不要进行迟绑定呢?C++编程思想说: It’s important to realize that upcasting deals only with addresses. If the compiler has an object, it knows the exact type and ther

2009-10-19 16:19:00 837

原创 C++ 多态(迟绑定)真正原理

今天看到一篇帖子关于虚函数的问题,原以为自己已经对c++虚函数,多态了解的不错了,但是,还是发现有一些模糊点,所以,又回头重新总结了一番。 有了不小的收获,下面,就和大家一起来分享一下,也希望对一些朋友起到一定的帮助。首先先梳理一下概念,以前似乎对概念不是很重视,其实不然,真正对一个东西的定义了解了很透,才能去深入挖掘这个东西的内涵。 好,首先,什么是绑定?( what`s t

2009-10-19 14:43:00 2936 3

原创 C++中New存在的意义

 最近研究C++的new,发现,存在真是必有其道理的。Thinking IN C++中说:若C++中没有引入new来动态分配空间的话,一个对象的初始化,必须要这样实现//: C13:MallocClass.cpp// Malloc with class objects// What youd have to do if not for "new"#include // mall

2009-10-19 00:46:00 1296

原创 C语言文件操作重难点(原)

发现很多人对文件操作有不了解的,自己又回过头看了看,总结提升了一下,也小有收获。常见的注意事项就不说了,只列举了几个个人认为有用的。  1. 常有人说:EOF可以作为文本文件的结束 标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件.这是为什么?例:ch=fgetc(fp);while(EOF != ch){ p

2009-10-17 15:10:00 1360

空空如也

空空如也

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

TA关注的人

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