C++
文章平均质量分 71
goodadult2012
这个作者很懒,什么都没留下…
展开
-
VS2008 运行directshow的几个错误
标签: 1>.../winnt.h(222) : error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)<br />1>.../winnt.h(222) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int<br />1>.../winnt.h(5940) : error C2146: 语法错误 : 缺少“;”(在标识符“Buffer”的前面)<br />1>.../winnt.h(5940) : error C4430: 缺少原创 2010-12-14 10:47:00 · 538 阅读 · 0 评论 -
在Web上调用Ocx控件
<br />在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中;将该控件下载给用户;在用户机器上安装该控件。如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单;如果同时兼顾IE和Netscape用户,则要做更多工作。大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标记有几个重要的参数特性,它们是: <br />1.ID:为控件提供一个标识名称,为HTML代码提供一种访问该控件的方式。 <b原创 2011-04-23 11:04:00 · 33047 阅读 · 2 评论 -
字符编码:ANSI, UNICODE, UTF
<br />早期的计算机只支持英文,所以需要表达的字符数量很少,为此ANSI制定了ASCII字符表,以一个字节的低7位表示字符,这样可以表达128个,当字节的高位为1时,表示的是扩展ASCII字符,ANSI并没有为它们指定标准。然而,计算机所要表达的并非只有一种语言,为了使ASCII可以支持其他平台,IBM又做了一些修改,利用两个扩展ASCII字符来表达非英文字符,这样可以表达的扩展字符数就到达了14位,即16384个字符。这就是ANSI字符标准。针对ANSI每个国家(地区)有自己的编码规范,对中文而言,最原创 2011-04-26 16:18:00 · 463 阅读 · 0 评论 -
指针函数与函数指针的区别
<br /> 指针函数和函数指针<br />一、指针函数<br /> 当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。<br /> 格式:<br /> 类型说明符 * 函数名(参数)<br /> 当然了,由于返回的是一个地址,所以类型说明符一般都是int。<br /> 例如:int *GetDate();<br /> int * aaa(int,int);<br /> 函数返回的是一个地址值转载 2011-05-05 16:23:00 · 282 阅读 · 0 评论 -
手把手教你玩转SOCKET模型之重叠I/O篇(上)
手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人。我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付出时的吝啬。”原创 2011-08-05 09:59:44 · 794 阅读 · 0 评论 -
SOKET模型重叠I/0
四。 实现重叠模型的步骤作了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了。其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会如何来使用它,却是真的不难,唯一需要理清思路的地方就是和大量的客户端交互的情况下,我们得到事件通知原创 2011-08-05 10:03:29 · 1101 阅读 · 0 评论 -
软件测试
单击"别名"选项卡,还可以为服务器配置别名。服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同。如下图中,我们可以使用myserver来代替真正的服务器名称sql2kcn-02,并且使用网络库 Named Pipes。别名的设置与使用HOS转载 2011-09-15 22:21:07 · 518 阅读 · 0 评论 -
VS2008 项目的调试发布模式
我的文章所写内容,都是自己实际编程中遇到的,通常是在遇到这个问题时,在网上搜索或者自己找到解决办法。有时候,某些问题要花好久才找的到解决方案,因为网上资料较少,也有可能是我搜索能力不强。写下这些,一是希望能帮助到遇到同样问题的朋友,二是记下之后,再次遇到这些问题,能记得解决办法。由于平时工作都很忙,所以我的文章大多都只简单的写了方法,没讲解得太详细。还是希望能够帮助到有需要的朋友们转载 2011-10-25 20:50:17 · 1294 阅读 · 0 评论 -
安装文件没有修改windows installer的权限是怎么回事,应该怎么解决?
从网上找了不少答案没有太好的。给你一些建议,如果下面的都不能用的话,最好重装系统吧,因为我也遇到过,当时比较急,没时间找解决方法了,5分钟后恢复镜像OK。比找解决方法还快。呵呵附录:第一种方法:首先前提是Windows Installer服务已启用(开始---运行---Services.msc,察看Windows Installer服 务,是否已被停用),然后找到windows/system32/转载 2011-10-26 16:38:13 · 1927 阅读 · 0 评论 -
用户没有权限安装软件是什么原因?
第一种方法: 问:禁止安装,用户权限设置,你没有权限安装软件,这是什么原因造成的? 答:禁止windows的所有用户安装软件的方法如下: 点击“开始”-“附件”-“运行”-输入“regedit”并按确定打开注册表-展开到“HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer”下,在右边新建2个可扩转载 2011-10-26 16:29:52 · 17791 阅读 · 2 评论 -
生成伪随机数的超级算法
最近浏览“程序员论坛”时发现不少好帖,增长了不少知识,现拿其中一则为例与大家共同分享心得。 某人提出一个问题:怎样才能生成一亿个不重复的随机数? 问题表述起来很简单,似乎只要弄明白什么叫随机数以及怎样用电脑生成随机数,就能解决问题。 随机数,个人理解为一定范围内出现的毫无规律的数,比如扔一个骰子,落在桌面上时朝上的一面所表示的数就是随机数,这个数只能在1到6的范围内,但具体是什转载 2011-11-17 09:40:06 · 763 阅读 · 0 评论 -
探索C++的秘密之详解extern "C"
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一转载 2011-11-24 14:21:22 · 443 阅读 · 0 评论 -
函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别
函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别首先,__thiscall是关于类的一种调用方式,它与其他调用方式的最大区别是: __thiscall对每个函数都增加了一个类指针参数 class aa { void bb(int cc); }; 实际上bb的函数原形是void转载 2012-09-20 16:55:08 · 527 阅读 · 0 评论 -
_STDCALL&_CDECL 调用约定
_stdcall将参数压栈是按C语言的顺序(从右到左),但与C 语言不同的是它是由被调用者将参数从栈中清除的,所以它的编译文件比_cdecl小。_stdcall是Windows API函数中默认的调用约定,VB、VFP等也采用这个约定。 _cdecl是C语言采用的默认调用方法,它的优点是支持printf这样的可变参数调用。 另外,VC++对于两种调用方法的名称转换方法也不同转载 2012-09-20 17:47:33 · 1264 阅读 · 0 评论 -
(__cdecl,__stdcall,__fastcall,__pascal)
(__cdecl,__stdcall,__fastcall,__pascal)关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解。 microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开发dll给其他语言用,则应该指定__stdcal转载 2012-09-20 17:49:10 · 415 阅读 · 0 评论 -
ddraw 显示YUV视频数据
#include "stdafx.h"#include "MyDDraw.h"CMyDDraw::CMyDDraw(void){ m_hShowHwnd = NULL; m_lpDD = NULL; m_lpDDSPrimary = NULL; m_lpDDSOffScr = NULL; m_lpddsback = NULL;原创 2014-10-30 19:24:12 · 2532 阅读 · 0 评论 -
如何使用DirectDraw直接显示YUV视频数据
1.在DirectDraw中创建YUV表面 与一般表面不同的是,创建YUV表面时需要指定象素格式,并指定YUV数据的FourCC码,关于FourCC码可以参考微软MSDN站点上的说明,下面是具体的创建方法:(以YUV4:2:0格式为例,其中drawwidth和drawheight是欲显示图像的宽度和高度,以象素为单位)LPDIRECTDRAW7 lpDD; //转载 2014-10-30 17:10:10 · 916 阅读 · 0 评论 -
C++ 友元函数与友元类
<br />友元函数和友元类的需要:<br /> 类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。<br /> 为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的原创 2011-04-25 15:26:00 · 477 阅读 · 0 评论 -
C++ 虚函数的作用
<br />虚函数联系到多态,多态联系到继承. 所以本文中都是在继承层次上做文章. 没了继承,什么都没得谈.<br /> <br />下面是对C++的虚函数这玩意儿的理解.<br /> <br />一. 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)<br />简单地说,那些被virtual关键字修饰的成员函数,就是虚函数. 虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离; 用形象的语言来解释就是实现以共同的方法,但因个原创 2011-04-25 11:28:00 · 871 阅读 · 0 评论 -
用Visio画UML 类结构图
<br />类之间的关系<br />继承关系<br />继承关系是最容易理解的关系。画成图的话就像下面这样。面向对象的说法就是is-a关系。也就是说Class2 is a Class1。在C++中我们说Class2是Class1的派生类,或者说Class1是Class2的基类。<br />聚集和组成<br />从容易理解的关系说起.经常有一个类是另一格类的数据成员的情况。在UML中表现为,聚集(aggregation)和组成(composition)。 <br /><br />从图上来看,这两种关系都表现为原创 2011-04-21 15:58:00 · 3434 阅读 · 0 评论 -
Xvid VS2008 的编译过程
<br />这几天做一个BMP2AVI的转换器,要用到XviD Codec的编码器,使用过程中,发现有一个Status窗口弹出来,压缩过程奇慢GraphEdit里的结构如下: <br />PushSourceBitmapSetFilter -> XviD MPEG-4 Codec -> AVI Mux -> FileWriter<br />并且关闭GraphEdit的时候,关闭不了程序,程序失去响应,怀疑是因为Status窗口造成的,google上搜索了一下,发现需要修改XviD的源代码来去掉这个东西。<b原创 2010-12-17 10:38:00 · 1194 阅读 · 0 评论 -
Xvid vs2008编译源代码
<br /> 一:首先需要下载Xvid1.2.2的源代码,在Xvid网站上可以下载。<br /> 网站主页http://www.xvid.org/Home-of-the-Xvid-Codec.1.0.html,<br /> <br /> 版本1.2.2源代码下载页网址http://www.xvid.org/Downloads.43.0.html,下载链接为xvidcore-1.2.2.zip 大小为870k多一点。<br /> <br /> 二:下载后解压,得到文件夹xvidcore。备用原创 2010-12-17 10:42:00 · 2021 阅读 · 0 评论 -
C++虚函数表解析
<br />C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 <br />关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一转载 2010-12-20 19:05:00 · 298 阅读 · 0 评论 -
Windows平台下常用进程间通信的实现方式
<br />Windows平台为我们提供了多种进程间通信的机制,主要包括:注册表方式、共享文件方式、共享内存方式、共享数据段、映射文件方式、管道方式、剪贴板方式、消息方式。其中注册表方式需要增加注册表表项,而注册表一般不应删改,所以此种方式不被推荐;共享数据段需要借助动态链接库,实现起来比较麻烦,这种方式也不被推荐。下面重点引见一下其它几种进程间通信的实现方式。<br /> <br />1.共享文件方式 <br /><br />(1)数据发送 <br /><br />数据发送进程为通过Cfile类创建一个共原创 2010-12-22 17:22:00 · 669 阅读 · 0 评论 -
进程间的通信
摘 要 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是原创 2010-12-21 09:29:00 · 352 阅读 · 0 评论 -
vlc的应用之八:MFC调用libvlc.dll
2009.10.29修改:加入clip_children属性设置。参考第1步。2010.04.14修改:中文路径问题。参考第7步。 环境: 1) VC6 SP5 2) vlc-0.9.9a 0. 引言 根据上一篇博客的研究,任何一个VC环境都可以调用MinGW/Gcc编译得到的libvlc.dll。VLC在编译打包之后(也就是执行完make package-win32-base),或者去官网下载zip包解压之后,或者是安装完VLC之后,在vlc-0.9.9a目录转载 2011-01-05 14:55:00 · 1051 阅读 · 0 评论 -
VLC 编译时常出错找不到的文件 ---stdint.h
<br />/* stdint.h - integer types<br /><br /> Copyright 2003, 2006, 2007 Red Hat, Inc.<br /><br />This file is part of Cygwin.<br /><br />This software is a copyrighted work licensed under the terms of the<br />Cygwin license. Please consult the file "C原创 2011-01-05 15:45:00 · 3000 阅读 · 0 评论 -
windows平台下vlc编译
<br />http://jeremiah.blog.51cto.com/539865/114190原创 2011-01-07 16:04:00 · 436 阅读 · 0 评论 -
VC窗口(控件)中显示指定 URL 对应图片
<br />在上篇 VC 中用 IPicture 在窗口中显示图片文件 讲到的是 VC 窗口(或控件)中显示本地图片文件,本文延伸这一话题,来演示如何显示网上的图片,即提供图片的 HTTP URL 地址,把它显示到 VC 的界面中来。<br /> 本文参考我原来写的一篇日志 VC中使用CInternetSession抓取网页内容 来修改上篇代码中用来显示图片的函数:HRESULT ShowPic(char *lpstrFile,HWND hWnd)。把研究过的东西整理记下来总是好处多多,瞧,至少现在展开其转载 2011-01-11 10:43:00 · 905 阅读 · 0 评论 -
VS2008中使用GDI+
<br />VS2008中使用GDI+<br />一、包含头文件 #include <GdiPlus.h> <br />二、将Gdiplus.lib文件联编加入到项目中去 <br />可在项目代码中加入 <br />#pragma comment(lib,"gdiplus.lib") <br />不加会出出LINK 2001错误 <br />三、使用GDI+后命名空间 <br />using namespace Gdiplus <br />四、定义全局 无符号长整形指针 ULONG_PTR <br />如转载 2011-01-11 11:57:00 · 1149 阅读 · 0 评论 -
vc 指定控件鼠标右键菜单
<br />1、在网上搜集VC中向指定控件添加右键弹出菜单,谈到的方法多数是新建一个继承自原来控件的MFC控件类,在该类的OnContextMenu(CWnd* /*pWnd*/, CPoint point)函数中添加右键弹出菜单的响应,完整代码如下:<br />void CMyListBox::OnContextMenu(CWnd* /*pWnd*/, CPoint point)<br />{<br /> CMenu menu; <br /> VERIFY(menu.LoadMenu(原创 2011-01-10 15:24:00 · 1590 阅读 · 0 评论 -
VC中加载GIF格式动态图片的详细方法!
<br />最近老总说要把视图里的图标改成动态的,让其能够更形象的显示状态,所以我就百度了一下,还真没很详细的资料,但最终我还是东凑凑,西凑凑给凑出来了,下面说一下详细步骤吧:<br /> 1。下载 PictureEx.h和PictureEx.cpp两个文件<br />把这两个文件放在工程的文件夹里面,然后在将这两个文件添加到工程里面去,这样你的工程里就多了一个类了:CPictureEx<br />2.将你要加载的GIF图片添加到项目文件夹里,这里我命名为:"inter.gif"<br />3。在试图类的头原创 2011-01-11 16:26:00 · 1159 阅读 · 1 评论 -
戏说重叠I/O
<br />在windows中有一个api叫readfile <br /> <br /> bool readfile( <br /> handle hfile, // handle to file <br /> lpvoid lpbuffer, // data buffer <br /> dword nnumberofbytestoread,原创 2011-03-18 15:03:00 · 485 阅读 · 0 评论 -
IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明
<br />应该是windows网络编程第二版里面提到过。现在整理一下。<br />1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。<br />网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。<br />情况一:调用WSASend发送正确的时候(即立即返回,且没有错误),TCP/IP将数据从程序缓冲区中拷贝到TCP/IP层缓冲区中,然后不锁定该程序缓冲区,由上层程序自己处理。TCP/IP层缓冲区在网络合适的时候,将原创 2011-03-28 15:02:00 · 774 阅读 · 0 评论 -
GetQueuedCompletionStatus的返回值
<br />完成端口GetQueuedCompletionStatus返回值的问题 <br />先看看GetQueuedCompletionStatus函数的完整声明:<br />BOOL GetQueuedCompletionStatus(<br />HANDLE CompletionPort, <br />LPDWORD lpNumberOfBytes, <br />PULONG_PTR lpCompletionKey, <br />LPOVERLAPPED *lpOverlapped原创 2011-03-31 10:03:00 · 11885 阅读 · 1 评论 -
c++ 继承分析
<br />C++ 支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介绍一下各种C++继承方式的具体应用方法,希望能够帮助大家对这方面的知识有一个深入的认识。<br />C++继承方式总共分为以下几种:<br />public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。<br />(1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏。派生类的成员只能访问基类中的publi原创 2011-04-20 10:03:00 · 803 阅读 · 0 评论 -
如何使用DirectDraw直接显示YUV视频数据
最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据)1.在Dir转载 2014-10-30 17:14:52 · 1042 阅读 · 0 评论