自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(214)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 【复制构造函数,赋值函数正确使用场景】

复制构造函数,赋值操作符

2022-04-16 08:59:45 242

原创 不调用swap,利用数学,两整数交换

不调用swap,利用数学,两整数交换

2022-04-09 11:16:01 296

原创 数学对数和编程对数

1.对数的概念就是求指数的过程,打个比方: 如果a的x次方等于N,那么对数的表示方法就是:x = ,a是底数,N是真数,x为指数 2.以a为底N的对数记作。对数符号log出自拉丁文logarithm,最早由意大利数学家卡瓦列里(Cavalieri)所使用。 3.为了使用方便,人们逐渐把以10为底的常用对数记作:lgN,以无理数e为底的自然对数记...

2019-08-27 14:27:11 1315

原创 vs2017 shlobj.h 报错 unexpected token 'identifier' (意外令牌'标识符')

Error C2760 syntax error: unexpected token 'identifier', expected 'type specifier' c:\program files (x86)\microsoft sdks\windows\v7.1a\include\objbase.h 239 Warning C4091 'typedef '...

2019-08-05 17:47:55 6039

原创 数据结构之二叉树的遍历,前序遍历,中序遍历,后序遍历

二叉树的遍历,分为前序遍历,中序遍历,后序遍历,对这几种遍历总是有点模糊,今天做一下详细的笔记吧前序遍历:A B C D E F G H K,遍历指导:从根节点开始,先左后右中序遍历:B D C A E H G K F,遍历指导,从左节点开始,一直遍历到无左节点,然后回溯。(先左后右)后序遍历:D C B H K G F E A,遍历指导,先左后右,最后根...

2019-07-24 14:35:18 836

原创 vs2010 编译时 wcstok_s 未定义 解决方案

Error 21 error C3861: 'wcstok_s': identifier not found D:\Microsoft Visual Studio 10.0\VC\include\tchar.h 794今天在编译nodepad++ 一个插件的时候编译的时候竟然出现上面的一个错误,找了很久都没有办法解决。LocationNavigate.cpp...

2019-07-07 11:40:35 536

转载 C++ template 中的class 和 typename 的区别示例

转载https://blog.csdn.net/Function_Dou/article/details/84644963可以先看看上面的文章,下面是示例template<class T>class people{public: typedef T value_type; typedef T* pointer; typedef T& refere...

2019-07-04 11:33:54 1012

原创 windows 文件关联图标 变白

最近发现文件关联的图标莫名其妙的和关联的程序的图标是不一致的,看起来实在不美观,网上找了很多修复的教程都无法修复,现在我们看看具体如何修复以notepad++ 关联的图标变白为例子我们在windows打开注册表,搜索.txt我们根据Notepad++_file 值继续搜索项,删除后,然后右键管理员执行重建关联图标.bat,完事下载:htt...

2019-05-23 11:43:07 2000 1

原创 C++ VC++ C2662编译报错

Error C2662 'bool CListFileItem::equal2(const CListFileItem &)': cannot convert 'this' pointer from 'const CListFileItem' to 'CListFileItem &'意思:无法将 this 指针 从一个const CListFileItem 类...

2019-05-21 14:58:49 365

原创 C++ operator 的超棒demo

class CStrPtr { LPTSTR m_szStr;public: // A collection of constructors. CStrPtr(); CStrPtr(int iSiz); CStrPtr(CStrPtr& utStr); CStrPtr(LPCTSTR szStr); ~CStrPtr(); //类型转换的操作符写法,可以看到返回...

2019-05-06 13:59:11 187

原创 OpenSSL安装文档(官方翻译)

Windows平台的注意:Windows目标可以归类为“本机”,即直接使用Windows API和依赖POSIX兼容层“托管”。 “本机”归结于VC-*(其中“VC”源于缩写Microsoft Visual C编译器)和MinGW[64]。“托管”平台是Cygwin和MSYS[2]。 甚至虽然后者([2])不是OpenSSL团队直接支持的,但它是Cygwin#1建立MinGW目标的热门...

2019-03-11 22:07:21 916

原创 libcurl在windows中编译和使用的说明文档(官方翻译)

使用Visual C构建先决条件本文档描述了如何编译,构建和安装curl和libcurl从使用Visual C构建工具的来源。 要用VC构建,你会当然要先安装VC。 所需的最低版本VC是6(Visual Studio 6的一部分)。 但是使用更新的版本是强力推荐。VC也是Windows Platform SDK的一部分。 您不必安装完整的Visual Studio或如果你想要的只是构...

2019-03-11 17:09:03 850

原创 phpstorm 调试配置环境

1、下载xdebug模块注意:带"ts"是线程安全的意思,"nts"的他没有标示,这个要对应你的php版本看看你的php版本是nts还是ts的。下载地址:https://xdebug.org/download.php下载完毕了之后将这个文件放在C:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug-2.6.0-7.2-vc...

2018-10-26 19:21:45 2096

原创 D3DCULL_CW 和 D3DCULL_CCW

D3DCULL_CW Cull back faces with clockwise vertices.(剔除顺时针的顶点)D3DCULL_CCW Cull back faces with counterclockwise vertices. (剔除逆时针的顶点)clockwise 是顺时针的意思,有时候总翻译英文,导致理解有点不对,counterclockwise是逆时针,注意这个是剔除的动作...

2018-07-12 21:52:07 883

原创 D3D的混合源和目标(Source 和 Destion)

D3D混合的时候经常遇到Src和Dest两个字眼,究竟Src 是指当前需要绘制的内容还是已经绘制的内容,以免把他们搞乱,今天记录一下。Src:正在绘制的内容,接下来需要绘制的内容Dest:表示已经绘制的内容,有些书上只子缓冲区的像素,或者理解为屏幕已显示的内容...

2018-07-04 16:33:03 559

原创 D3DX 效果正确使用

今天在玩雾测试的时候,法线雾是出来了,但是绘制的内容都是雾的颜色,找了半天才发现是这个问题LPD3DXEFFECT-&gt;SetTechnique(技术句柄)LPD3DXEFFECT-&gt;Begin(nPass,0)LPD3DXEFFECT-&gt;BeginPass(i)        LPDIRECT3DDEVICE9-&gt;SetTransform        LPDIRECT3D...

2018-06-29 14:24:27 1136

原创 D3DXCreateTeapot,D3DXCreateSphere,D3DXCreateTorus,D3DXCreateCylinder函数参数图解

2018-06-19 23:51:52 1264

原创 DrawIndexedPrimitive 各个参数的解释

DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType 50, // BaseVertexIndex 0, // MinIndex 4, ...

2018-06-07 15:21:09 1030

原创 Inner Join(图文并茂,形象表达Inner Join)

2018-04-29 20:31:33 1263

原创 3dsmax 粒子系统之超级喷射(SuperSpray)

超级喷射粒子计时发射停止:数值表示动画帧数寿命:表示动画帧数发射停止 和寿命 决定了粒子动画的总帧数,例如:图中的粒子动画总帧数一共是40帧就播放完毕了

2018-03-28 23:07:51 10536 1

原创 php 调试 $_SERVER DOCUMENT_ROOT CONTEXT_DOCUMENT_ROOT

     今天在玩ueditor的时候,在指定上传路径,总是不对,我页面访问的是127.0.0.1/xpage/inde.php,$rootPath = $_SERVER['DOCUMENT_ROOT']; 总是返回:D:/php/htdocs路径,这是我php的根目录,这是为啥?原来$_SERVER['DOCUMENT_ROOT'];,可以在httpd-vhosts.conf和httpd.con...

2018-03-02 14:49:47 1557

原创 D3D TriangleStripe 的绘制流程

int nVertextCount=8;//8个顶点 int nVertextTotal=nVertextCount*sizeof(D3DVertexXYZUV1); LPDIRECT3DVERTEXBUFFER9 &pVertextBuffer=m_pVertextBuffer; HRESULT hr=S_OK; if (FAILED( hr=pDevice3D->CreateVer

2018-01-30 15:33:30 301

原创 DirectX png 绘制

//要打开Alpha混合,否则会导致显示图片不正确,比如白茫茫一片 pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);//开启Alpha混合 pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);//设置源混合因子,混合因子之源Alpha pDevice->SetRen

2018-01-23 11:58:35 1192

原创 D3DXMatrixPerspectiveFovLH

D3DXMATRIX * D3DXMatrixPerspectiveFovLH( __inout D3DXMATRIX *pOut, __in FLOAT fovy, __in FLOAT Aspect, __in FLOAT zn, __in FLOAT zf);参数解析如下:pOut [in, out] D3DXMATR

2018-01-17 22:12:59 373

原创 D3DXMatrixLookAtLH 函数详解

一般我们设置视图矩阵就按照下面的方法设置 D3DXMATRIX matView; //定义一个矩阵 D3DXVECTOR3 vEye(0.0f, 20.0f, -30.0f); //摄像机的位置 D3DXVECTOR3 vAt(0.0f, 10.0f, 0.0f); //观察点的位置 D3DXVECTOR3 vUp(0.0f, 1.0f, 0.0f);//向上的向量,表示3D坐标系中向

2018-01-17 15:36:52 2051

原创 顶点的法线计算方式

如果一个顶点的法线共享多个三角形,我们还需要对此法线进行均值计算,如下伪代码void CalculationNormalVector(){ for(int i=0;i<m_Vertices.size();i+=3) { Vector3D normal=CrossProduct( (m_Vertices[i+1].m_Position-m_Vertices[i].m_Positio

2018-01-11 20:08:07 6729

原创 d3d 矩阵记录

//单位矩阵:任何矩阵与它相乘都等于自己void CMatrix4_4::Identity(){ memset(this,0,sizeof(CMatrix4_4) );//全部都设置为0 //主对角线的元素都为1 this->matrix[0]=1.0f; this->matrix[5]=1.0f; this->matrix[10]=1.0f; this->matrix[15]=1

2018-01-10 21:13:27 377

原创 向量点积,叉积,向量点乘和余弦的关系推导

//点积,如果 v1,v2 是单位向量,返回是u,v夹角的余弦//返回值 //== 0,表示v1,v2垂直//&gt; 0 ,两个向量之间的夹角大于90度//&lt;0,两个向量之间的夹角小于90度//D3DXVec3Dotfloat VecDotProduct(Vector3d v1,Vector3d v2){ return v1.x*v2.x+v1.y*v2.y+v1.z*v2...

2018-01-10 20:59:10 4378

原创 d3d 中的平截体的意思frustum

图中红色框中的部分就是平截头体(堆有一部分给截掉了),也可以理解为视锥,这就是相机拍摄的范围

2018-01-10 20:27:37 659

原创 d3d 顶点归一化的原理和作用

void NormalizeVec(stD3DVertex &v) { // Normalize normal. float lenght = (float)sqrt((v.x * v.x + v.y * v.y +

2018-01-10 09:44:31 697

转载 D3D RHW的理解

RHW(Reciprocal of Homogeneous W[1])英文原文意思:The RHW value, which stands for Reciprocal of Homogeneous W[1], tells Direct3D that the vertices thatare being used are already in screen coordinates.

2017-12-30 15:39:46 1897

原创 vc++ __super 支持

今天在vs编写类继承的时候,突然想起有没有vc++支持的父类的super写法,网上查了下资料,果然有,于是记录下来class CA{public: CA(){ } virtual void printf(){ TRACE("这是类A输出\n"); }protected: volatile int nID;//声明为protectedprivate: };clas

2017-12-29 18:57:25 1731

原创 lua 内存回收

内存回收器函数Lua 提供了以下函数collectgarbage ([opt [, arg]])用来控制自动内存管理:1, collectgarbage("collect"): 做一次完整的垃圾收集循环。通过参数 opt 它提供了一组不同的功能:2, collectgarbage("count"): 以 K 字节数为单位返回 Lua 使用的总内存数。 这个值有小数部分,所以只需

2017-12-29 14:29:07 1179

原创 解决windows系统字体设置为125大小导致程序界面位置不一致的问题

在用户设置的显示为中等的情况下,125%,会导致界面的显示的位置不同,并且会导致滚动无法滚动到指定的位置我们可以通过该代码获取原始的比例进行适当调整 int nData1 = GetDeviceCaps(::GetDC(this->GetSafeHwnd()), LOGPIXELSY); m_uiZoomRate = (float)nData1 / 96;//100%是每英寸96个像素,

2017-12-29 11:53:25 8024

原创 D3D 光照与RGB颜色生成基本原理

1.每个顶点坐标计算出u,v两个向量,其实也就是顶点坐标       2.计算出u,v两个向量的法线N               通过叉乘可以计算出垂直于两个向量的向量结果(法线)               D3DXVECTOR3 N=D3DXVec3Cross(&u,&v)       3.法线N与光照向量的夹角就是RGB生成的系数r         rgb=rgb*r

2017-12-19 20:39:04 621

原创 浮点类型 比较特别的操作,取整和不四舍五入

//下面结果所得2.5678 保留两位不进行4舍5入等于2.56 double nCurExpose=25678; double nCurRGB=10000; double dblRgbScale=(double)nCurExpose/(double)nCurRGB;//2.5678 int nRgbScale=(int)(dblRgbScale*100);//非4舍五入操作保留两位小数点

2017-12-19 18:28:23 1156

原创 DirectX 的默认灯光

在D3D实践的过程中,如果你代码没有指定场景的灯光,灯光默认是黑色的,如果又不想使用灯光又想看到绘制的物体可以使用       _device->SetRenderState(D3DRS_LIGHTING,false);关闭灯光

2017-12-19 17:52:17 456

原创 摄像机 操作

2017-12-19 14:13:11 156

原创 光源的类型

2017-12-15 21:04:21 643

原创 Windows Hook Api

今天在写Hook ws2_32 的函数send的时候,发现总是让程序崩溃,崩溃的时候程序的崩溃点总是在ws2_32的模块中,最后发现在调用Hook函数时候,我进行了还原,还原的保护代码是PAGE_READWRITE,这样子导致其他线程在执行对应的地址代码产生了一个执行错误的代码!哎,太久没有使用逆向了,导致就生疏了!具体原因是:VirtualProtect ( pOld

2017-12-14 21:25:13 368

notepad++ 光标导航 向前向后支持 LocationNavigate4.7.8.rar

在Source Insight里,我们可以控制光标回到上次查看代码的位置,然后再返回当前编辑位置。这对于查看代码十分方便,但是在Notepad ++上并没有自带这个功能,有时候会很不方便。幸运的是,我们可以自己安装这个插件——LocationNavigate 。 notepad++ 中支持让光标回到前一个位置,也可以回滚到上上个位置,很方便。 根据你的版本安装其中一个,分别为ANSI 或者 UNICODE 的版本,将 LocationNavigate.dll 存放在 notepad++ 的安装目录 中,举个例子: D:\Notepad++\plugins\LocationNavigate\LocationNavigate.dll LocationNavigate 如果这个目录没有可以自己新建立一个 ,或用 notepad++的插件管理器先安装LocationNavigate 再替换资源中的附件,因为notepad++的管理器上安装的是没有效果的

2019-07-07

ATL开发指南(第二版)(PDF高清版)带书签附源码.zip

ATL开发指南 (第二版)PDF高清版带书签附源码 网上基本没有带目录的,此文档目录为本人花了半天时间制作的,方便大家的阅读,并附近上随书源码。 本书是介绍使用ATL进行软件开发的参考用书。全书分为十三章:第一章引入了C++模板的概念;第二章详细介绍了组件对象模型(COM);第三章介绍了活动模板库(ATL)的概念和使用方法;第四章涉及接口的实现和线程之间的参数调度等细节问题;第五章探讨了代码复用的两种方法――包容和集合;第六章讨论了关于自动化的问题;第七章说明了事件和连接点的管理;第八章围绕ActiveX控件展开了详细的论述;第九章介绍了COM中的两种实体――枚举器和集合;第十章研究了COM里的线程管理;第十一章讨论了OLE DB同ATL之间的关系;第十二章 介绍了两种GUI接口――对话框和视窗;最后一章解释了COM+的一些基本概念。 由于书中的内容非常庞杂,并且涉及到Visual C++开发的一些问题,所以本书对读者有一定的要求。我们希望你在开始阅读之前,已经了解COM、ActiveX控件的基本知识,并且具有使用Visual C++开发应用程序的实践经验。本书的主要对象是程序设计或开发人员,同时也可以作为大专院校计算机专业师生和计算机爱好者的参考资料。 目录: 第一章 使用C++模板开发应用程序 1.1 模板简介 1.1.1 函数模板 1.1.2 类模板 1.2 基于模板的堆栈类 1.3 成员函数的实现 1.4 不定类型的模板参数 1.5 基于模板的复用技术 1.6 ATL如何使用模板 1.7 小结 第二章 组件对象模型(COM)简介 2.1 软件组件及其属性 2.1.1 同语言的无关性:二进制的设计标准 2.1.2 版本升级的各律性 2.1.3 位置的透明性 2.1.4 面向对象的特性 2.2 COM模型的原始实现 2.2.1 客户程序和服务器程序 2.2.2 OLE和ActiveX 2.2.3 Microsoft Transaction Server(MTS) 2.3 COM的精髓:接口 2.3.1 C++的虚函数表 2.3.2 COM的接口 2.4 对COM接口的访问 2.5 组件的多接口特性 2.5.1 标准COM接口 2.5.2 TRESULT 2.5.3 IUnknown的实现 2.5.4 组件的生存期 2.5.5 全局特有标识符 2.5.6 标题标识符 2.5.7 注册表 2.5.8 组件的类别 2.5.9 OLEWEW 2.5.10 组件的宿主文件 2.5.11 类工厂 2.6 基于COM的复用技术 2.6.1 包容(Containment) 2.6.2 集合(Aggregation) 2.7 COM的API函数 2.7.1 CoInitialize和CoInitializeEx 2.7.2 CoUninitialize 2.7.3 CoRegisterClassObject 2.7.4 CoGetClassObject 2.7.5 CoCreateInstance 2.7.6 DllCanUnloadNow 2.7.7 DllGetClassObject 2.8 其他涉及COM的问题 2.8.1 C++里关于COM的宏:STEMETHOD和SIDMETHODIMP 2.8.2 COM和Unicode 2.8.3 COM和多态性 2.9 示例:建立一个简单的COM客户程序和服务器程序 2.9.1 第一步:创建Visual C++工程 2.9.2 第二步:创建IMATH.H文件 2.9.3 第三步:声明组件和类工厂 2.9.4 第四步:组件类和类工厂类的实现 2.9.5 第五步:创建组件的宿主(SERVER.CPP) 2.9.6 第六步:添加对自注册和组件类别的支持 2.9.7 第七步:标准入四点的导出 2.9.8 第八步:将文件插入到工程里并建立该工程 2.9.9 第九步:使用OLEVIEW测试Math组件 2.9.10 第十步:建立一个简单的COM客户 2.9.11 第十一步:建立客户工程 2.9.12 对服务器程序进行调试 2.9.13 示例中忽略的东西 2.10 小结 第三章 活动模板库 3.1 ATL的基本特征 3.2 ATL和MFC 3.3 ATL框架结构概述 3.3.1 ATL的实现 3.3.2 组件的宿主支持 3.3.3 对IUnknown的支持 3.3.4 对类工厂的支持 3.3.5 对COM程序开发的其他方面的支持 3.4 ATL向导程序的使用 3.4.1 ATL COM AppWizard 3.4.2 ATL对象向导程序 3.4.3 线程管理模型 3.4.4 接口 3.4.5 集合 3.4.6 对ISupporErrorInfo的支持 3.4.7 对连接点的支持 3.4.8 自由线程调度器 3.5 Object Wizard里的其他选项 3.6 一个服务器程序示例 3.6.1 ATL工程的结构 3.6.2 SYDM.H和SIDAFX.CPP 3.6.3 RESOURCE.H和ProjectName.rc 3.6.4 ProjectName.CPP、ProjectName.H和ProjectName.DEF 3.6.5 ProjectName.IDL 3.7 接口定义语言 3.8 ATL工程的建立 3.8.1 ATL的基本宿主支持:CComModule 3.8.2 BEGIN_OBJECT_MAP和OBJECT_ENTRY宏 3.8.3 CComModule 3.8.4 ATL对组件的支持 3.8.5 AddRef和Release所在的位置 3.8.6 CComObject 3.8.7 接口和多重继承 3.8.8 ATL_NO_VTABLE 3.8.9 ATL的类工厂支持:CComCoClass 3.8.10 自注册功能与注册器 3.8.11 ATL和组件的类别 3.9 使用ATL实现Math组件 3.9.1 创建Visual C++工程 3.9.2 ATL COM AppWizard 3.9.3 ATL Object Wizard 3.9.4 Object Wizard里的Names(名称项) 3.9.5 Object Wizard里的Attributes(属性项) 3.10 IMath接口的实现 3.11 添加IAdvancedMath及方法 3.11.1 MATH.H文件的改动 3.11.2 MATH.CPP文件的改动 3.12 工程的创建 3.12.1 建立另外一个COM客户程序 3.12.2 测试服务器 3.13 小结 第四章 接口、接口定义语言和调度 4.1 COM接口类型概述 4.1.1 Vtabe接口 4.1.2 IDispatch接口:Dispinterfaces 4.1.3 双向接口 4.2 组件及其接口的描述 4.2.1 类型信息 4.2.2 调度 4.3 分布式COM 4.4 标准调度 4.4.1 类型库(通用)调度 4.4.2 自定义调度 4.5 创建Proxy/Stub DLL 4.6 接口定义语言 4.6.1 基本语法和布局 4.6.2 接口的声明:方法和属性 4.7 IDL数据类型 4.7.1 数组 4.7.2 字符串 4.7.3 结构 4.7.4 ENUM类型 4.8 ATL及COM数据类型 4.8.1 接口指针 4.8.2 C++智能指针 4.8.3 CComPtr 4.8.4 CComQIPtr 4.8.5 BSTR 4.8.6 CComBSTR 4.9 COM的内存管理 4.9.1 COTastMemAlloc和CoTaskMemFree 4.9.2 IDL和内存管理 4.10 COM中的错误处理 4.10.1 ISupportErrorInfo 4.10.2 CreateErrorInfo和ICreateErrorInfo 4.10.3 SetErrorInfo和IErrorInfo 4.11 客户机和GetErrorInfo 4.12 ATL对错误处理的支持 4.12.1 CComCoClass::Error 4.12.2 ISupportErrorInfoImpl 4.13 示例:在一个EXE宿主程序中创建Math组件 4.13.1 步骤一:创建Visual C++工程 4.13.2 步骤二:使用ATL Object Wizard 4.13.3 步骤三:添加IMath和IAdvancedMath接口 4.13.4 步骤四:处理被零除的问题 4.13.5 步骤五:添加IMath2接口 4.13.6 步骤六:添加IComponentInfo接口 4.13.7 步骤七:工程的编译连接 4.13.8 步骤八:编连并注册Proxy/Stub DLL 4.14 示例:创建COM客户机程序 4.15 示例:创建Visual Basic客户机程序 4.15.1 步骤一:创建应用程序窗体 4.15.2 步骤二:为Math组件插入引用 4.15.3 步骤三:添加代码 4.16 小结 第五章 包容与集合 5.1 二进制复用 5 2 COM包干手 5.3 COM集合 5.4 ATL对集合的支持 5.5 创建集合组件 5.5.1 选择性集合 5.5.2 盲目集合 5.6 ATL对包容的支持 5.6.1 FinalConstruct和FinalRelease 5.7 ATL对集合的支持 5.7.1 可集合组件的实现 5.7.2 DECLARE_AGGREGATABLE宏 5.7.3 DECLARE_NOT_AGGREGATABLE宏 5.7.4 DECLARE_ONLY_AGGREGATARLE宏 5.7.5 DECLARE_POLY_AGGREGATABLE宏 5.8 集合的实现 5.8.1 COM_INTERFACE_ENTRY_AGGREGATE 5.8.2 COM_INTERFACE_ENTRY_AGGREGATE_BLIND 5.8.3 COM_INTERFACE_ENTRY_AUTOAGGREGATE宏和COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND宏 5.8.4 DECLARE_GET_CONTROLLING_UNKNOWN宏 5.9 示例:创建一个简单的Math组件 5.9.1 步骤一:创建实现IMath接口的简单Math组件 5.9.2 步骤二:实现IMath接口 5.9.3 步骤三:工程的编译连接(简单示例) 5.10 示例:使用集合实现高级Math组件 5.10.1 步骤一:实现IAdvancedMath接口 5.10.2 步骤二:与简单的Math组件集合 5.10.3 步骤三:纳入集合的CLSID和IID定义的头文件 5.10.4 步骤四:向类中添加IUnknown指针 5.10.5 步骤五:覆盖FinalConstruct接口 5.10.6 步骤六:将被集合组件的接口添加到接口映射中 5.10.7 步骤七:释放被集合的组件 5.10.8 步骤八:测试集合组件 5.11 示例:通过包容实现高级Math组件 5.11.1 步骤一:为IMath添加实现代码 5.11.2 步骤二:测试包容组件 5.12 小结 第六章 自动化 6.1 后绑定 6.2 Dispinterface 6.3 双向接口 6.4 自动化数据类型 6.4.1 VARIANT数据类型 6.4.2 SafeArray数据类型 6.5 实现一个派发接口 6.5.1 实现IDispatch接口 6.5.21 IDispatch API函数 6.6 双向接口的实现 6.7 访问基于IDispatch的接口 6.7.1 后绑定(动态绑定) 6.7.2 ID绑定(前绑定) 6.8 前绑定的需求信息 6.9 ATL对自动化的支持 6.9.1 IDispatchImpl 6.9.2 CComTypeInfoHolder 6.9.3 CComVariant 6.10 自动化与接口版本更新 6.10.1 IDispatch的版本更新 6.10.2 双向接口的版本更新 6.11 示例:使用自动化实现Math组件 6.11.1 步骤一:创建Math组件 6.11.2 步骤二:实现IMath接口 6.11.3 步骤三:设置IDL属性 6.11.4 步骤四:编连(Build)所生成的工程 6.12 添加第二个IDispatch接口 6.13 实现第三个双向接口 6.14 创建C++双向接口客户机程序 6.15 创建Visual Basic客户机程序 6.15.1 后绑定 6.15.2 前绑定 6.16 小结 第七章 事件和连接点 7.1 接口的回调 7.2 引入和引出接口 7.2.1 Advise方法 7.2.2 Visual Base中的Implements关键字 7.3 回调示例 7.3.1 步骤一:创建Chapter7_Server工程和Math组件 7.3.2 步骤二:实现IMath接口 7.3.3 步骤三:添加Advise方法 7.3.4 步骤四:定义引出接口 7.3.5 步骤五:通知客户机程序 7.4 Visual Basic客户机程序 7.4.1 步骤一:引用Chapter7_CallBackServer的类型库 7.4.2 步骤二:添加CallBack类 7.4.3 步骤三:通知并传送组件 7.5 可连接对象 7.5.1 IConnectionPointContainer 7.5.2 IConnectionPoint 7.5.3 连接点、自动化和IProvideClassInfo2 7.5.4 IProvideClassInfo2Impl 7.6 ATL与连接点 7.6.1 Implement Connecting Point Wizard向导程序 7.6.2 连接映射 7.6.3 IConnectionPointImpl 7.6.4 IConnectionPointContainerImpl 7.6.5 AtlAdvise 7.6.6 Visual Basic的WithEvents关键字 7.7 使用连接点的一个示例 7.7.1 步骤一:创建Math组件 7.7.2 步骤二:实现IMath接口 7.7.3 步骤三:定义Event接口 7.7.4 步骤四:运行Implement Connection Point Wizard 7.7.5 步骤五:创建一个C++连接点客户程序 7.7.6 步骤六:编写Visual Basic连接点客户机程序 7.8 小结 第八章 ActiveX控件 8.1 ActiveX控件和容器 8.1.1 容器模式 8.1.2 控件和容器接口 8.2 什么是ActiveX控件 8.2.1 OLE Controls’94规范 8.2.2 OLE Controls’96规范 8.2.3 控件和容器设计指南 8.3 ActiveX控件功能类属 8.3.1 基本的COM支持 8.3.2 自注册 8.4 控件注册表项 8.4.1 Control 8.4.2 Programmable 8.4.3 Insertable 8.4.4 MiscStatus 8.4.5 Verb 8.4.6 ToolboxBitmap32 8.4.7 TypeLib 8.5 组件类属 8.6 OLE文档接口 8.7 自动化支持:IDispatch 8.7.1 标准属性和固有属性 8.7.2 Ambient属性 8.7.3 ATL和Ambient属性 8.7.4 标准控件接口 8.8 可连接对象与控件事件 8.8.1 标准事件 8.8.2 属性页 8.9 属性的持续性 8.9.1 IPersistStream 8.9.2 IPersistStreamInit 8.9.3 IPersistPropertyBag 8.10 ATL对ActiveX控件的支持 8.10.1 ATL的ActiveX控件支持文件 8.10.2 ATL Object Wizard 8.10.3 Names和Attributes选项卡 8.10.4 Miscellaneous选项卡 8.10.5 View Status选项和透明控件 8.10.6 Misc Status选项 8.10.7 Add Control Based On选项 8.10.8 对话框中的Other选项区 8.10.9 Stock Properties选项卡 8.11 ATL Object Wizard创建的文件 8.11.1 CComControl 8.11.2 CComControlBase 8.11.3 CWindowImpl 8.11.4 CStockPropImpl 8.12 初始化固有字体属性 8.13 IOleObjectImpl 8.14 限制控件的大小 8.15 IViewObjectImpl 8.16 CComControl::OnDraw 8.17 IDataObjectImpl 8.18 IOleInPlaceObjectImpl 8.19 IOleInPlaceActiveObjectImpl 8.20 IOleControlImpl 8.21 IPersistStreamInitImpl和IPersistStorageImpl 8.22 属性映射 8.23 ATL对属性页的支持 8.23.1 CDialogImpl类 8.23.2 IpropertyPageImpl类 8.24 创建一个示例控件 8.24.1 创建控件的宿主程序 8.24.2 ATL Object Wizard的使用 8.24.3 ATL Object Wizard的Names和Attributes选项卡 8.24.4 ATL Object Wizard的Miscellaneous选项卡 8.24.5 ATL Object Wizard的Stock Properties选项卡 8.25 创建一个基本的控件 8.25.1 初始化固有属性 8.25.2 CComControl::OnDraw 8.25.3 实现控件属性的持久性:Property Map 8.26 添加固有属性页 8.27 添加自定义属性页 8.28向 控件中添加事件 8.29 使用Connection Point Wizard 8.30 小结 第九章 COM的枚举器和集会 9.1 COM枚举器 9.1.1 内部枚举器接口 9.1.2 IEnumString接口 9.2 客户枚举器的访问 9.3 ATL的枚举器支持 9.4 CComEnum的应用 9.5 建立一个简单的枚举器客户应用程序 9.6 实现一个简单的枚举器对象 9.6.1 步骤1:创建ATL服务器工程 9.6.2 步骤 2:实现枚举器对象 9.6.3 步骤3:访问这一简单的枚举器服务器 9.7 COM集合技术 9.7.1 集合对象的实现 9.7.2 ATL对集合的支持 9.8 movie集合的实现 9.8.1 步骤1:创建ATL集合服务器工程 9.8.2 步骤2:实现movie组件 9.8.3 步骤3:修改IDL文件 9.8.4 步骤4:实现movie的集合组件 9.8.5 步骤5:定义IMovieCollection接口 9.8.6 步骤6:实现IApplication接口 9.8.7 步骤7:创建工程 9.9 创建Visual Basic客户程序 9.10 创建C++客户程序 9.11 小结 第十章 COM的线程管理 10.1 COM线程管理概述 10.1.1 单线程单元 10.1.2 多线程单元 10.1.3 单元 10.1.4 进程内组件 10.2 单线程单元 10.2.1 主STA 10.2.2 STA组件的需求(概要) 10.3 多线程单元 10.3.1 MTA组件的需求(概要) 10.3.2 混合模型组件的需求 10.4 自由线程管理的调度器 10.5 CoMarshalInterThreadInterfaceInStream 10.6 代码示例 10.7 ATL和COM的线程管理 10.7.1 Single和Apartment选项 10.7.2 CComSingleThreadModel 10.7.3 Free和Both选项 10.7.4 Free-Threaded Marshaler选项 10.7.5 CComObjectRoot 10.8 线程管理的示例 10.8.1 步骤1:创建math组件 10.8.2 步骤2:IMath接口的实现 10.8.3 步骤3:定义事件接口 10.8.4 步骤4:实现Advise方法 10.8.5 步骤5:在线程内执行计算 10.8.6 步骤6:工程的创建 10.9 一个C++客户应用程序 10.10 小结 第十一章 OLE DB和ATL 11.1 Microsoft数据访问技术的历史回顾 11.1.1 ODBC 11.1.2 OLE DB 11.2 ATL和OLE DB 11.2.1 ATL OLE DB Provider模板 11.2.2 数据源类 11.2.3 对话类 11.2.4 行集合类 11.2.5 命令类 11.3 ATL OLE DB Consumer模板 11.3.1 通用数据源支持 11.3.2 行集合和绑定支持 11.3.3 表格和命令支持 11.3.4 用户记录 11.4 活动数据对象 11.5 示例 11.5.1 通用工程概述 11.5.2 数据源文件 11.5.3 表格文件 11.5.4 创建Provider工程 11.5.5 模式信息的提供 11.5.6 数据管理器的建立 11.5.7 通过ADO访问OLE DB Providers 11.5.8 MFC/ATL Consumer的例子 11.6 小结 第十二章 对话框和窗口 12.1 ATL的窗口创建类 12.1.1 CWindow 12.1.2 CWindowImpl和消息映射 12.1.3 CWinTraits 12.1.4 CSimpleDialog 12.1.5 CDialogImpl 12.2 建立一个简单的Window GUI 12.2.1 步骤1:创建一个简单的窗口 12.1.2 步骤2:创建模态对话框 12.2.3 步骤3:创建非模态对话框 12.3 小结 第十三章 COM+入门 13.1 Windows DNA 13.2 COM+MTS=COM+ 13.3 COM+提供的服务 13.4 COM+的目录(Catalog) 13.5 COM+的装载均衡服务 13.6 COM+的IMDB服务 13.7 COM+的对象缓存服务 13.8 COM+的队列组件 13.9 COM+事件 13.10 COM+的安全性服务 13.11 Visual C++未来的变化 13.11.1 基于属性的编程思路 13.11.2 属性语法 13.11.3 编译器的变化 13.11.4 接口描述符 13.12 最后一个例子 13.13 迈向COM+环境 13.14 小结 附录 Visual C++自带的COM支持 A.1 智能指针:_com_ptr_t A.2 BSTR(_bstr_t) A.3 Variant(_variant_t) A.4 COM的错误处理(.corn.error) A.5 #import指令 A.6 TLI和TLH文件 A.7 应该使用哪一种技术 A.8 客户应用程序示例 A.9 Chapter 6_NativeClient示例

2019-07-01

重建关联图标.bat

1.修复windows 文件关联的图标 变白,或者图标异常, 如:notepad++关联的图标不正确

2019-05-23

DirectX 3D游戏编程实用教程[郑阿奇]

DirectX 3D游戏编程实用教程[郑阿奇],包含了源码和PDF电子书,整套资料,带书签版本

2018-05-07

DX D3D EffectEdit.exe

.fx 文件,着色器,效果文件的编辑器,以Direct 9编译出来的,有可能需要dx9.0的运行库,后面可以自己安装

2018-04-13

DX Effect Editor

DirectX 的Sample,用于可以编辑.fx文件的着色器,支持vs 2010编译,只需要包含direct 9的开发包即可

2018-04-13

BCGControlBarPro.v11.00(含帮助文件和VS2008中文向导)

12.0完整版本下载地址: BCGControlBar Library Professional Edition v11.00完整源代码(含帮助文件和VS2008中文向导) 第二部分下载地址:http://download.csdn.net/source/2033250 使用方法: 1、解压至C:\Program Files目录下(解压密码:xiaoqing); 2、双击导入注册表C:\Program Files\BCGSoft\BCGControlBarPro\bcgcontrolbarpro.11.00.reg; 3、运行向导C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBProIntegrationWizard.exe。 与其它不同之处: 1、包含完整的源代码、帮助文件; 2、已经对 BCGPAppWizard2005 中的向导进行汉化,在 Visual Studio 2008 中可使用中文向导 BCGPAppWizard (参考 Visual Studio 2008 原有的中文向导,如果您想学习汉化向导,参考目录是:C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\MFC\Application\templates\2052) 关于静态链接: 1、首先必须在运行向导BCGCBProIntegrationWizard.exe时已经编译静态库; 2、在 Visual Studio 建立项目向导时,选择静态链接即可。 关于使用 Office2007、2010 风格: 如果您使用了这些新风格,必须在项目中包括这些资源,否则 debug 版本启动时会报错(缺少资源,release版本不会提示,但显示不正常),具体有二种方法: 1、直接在“解决方案资源管理器”-“资源文件”中点右键,“添加”-“现有项”,把C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles中所有扩展名为 .rc 的资源包括进来即可。 2、直接在“资源视图”-“您的项目”上点右键,选择“资源包括”,在“资源包括”中的“编译时指令”中的#include &quot;BCGCBPro.rc&quot;后面添加以下代码: #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Aqua.rc&quot; #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Luna.rc&quot; #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Obsidian.rc&quot; #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Silver.rc&quot; #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2010White.rc&quot; #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyleCarbon.rc&quot; #include &quot;C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyleScenic.rc&quot; 3、如果使用动态库链接,请手工编译C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\Office2007_styles.sln或者build_all.dsp 仅为学习使用,下载后24小时内删除,请支持 BCGSoft 购买正版,本人不提供技术支持,不对任何负责。 尊重他人劳动成果,欢迎与大家分享成果。

2014-03-22

完美版 C++ 学习源码附加讲课PPT

完美版 C++ 学习源码附加讲课PPT 完美版 C++ 学习源码附加讲课PPT

2010-09-16

VC++实例源码,VC++窗口指针获取

VC++,实例,VC++实例源码,源码,如何获得指定点的控件指针

2010-09-16

VB6.0发短信到手机源码

VB 免费发送短信到手机的源码...附带VB附件

2010-06-26

OD使用破解教程,详细教会你汇编

OD使用破解教程,详细教会你汇编OD使用破解教程,详细教会你汇编

2010-06-10

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

TA关注的人

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