高分高手,VC++,COM技术
发布网友
发布时间:2023-07-19 04:34
我来回答
共5个回答
热心网友
时间:2024-03-09 17:48
对于容器
www.xmkingdee.com 厦门金蝶 www.xmkingdee.com 厦门金蝶
模版类InterfaceImpl<>提供接口引用计数的实现。在此我们可以用多接口继承,那样就能在一个COM组件中实现多个接口。 examv.com www.advuc.com 爱德财税 维时财税 www.wxuy.com
第三步:在完成这个对象之前,我们还要编写Queryinterface和两个接口方法: STDMETHODIMPCmyInterface::QueryInterface(REFIIDriid,LPVOID*ppv){*ppv=NULL;if(IsEqualIID(riid,IID_IUnknown)IsEqualIID(riid,__uuidof(ImyInterface))){//因为我们从ImyInterface继承,所以要进行强制类型转换*ppv=(ImyInterface*)this;_AddRef();//这个方法从某个基类继承而来returnS_OK;}returnE_NOINTERFACE;}STDMETHODIMPCmyInterface::Square(long*pVal){longvalue=*pVal;*pVal=value*value;returnS_OK;}STDMETHODIMPCmyInterface::Cube(long*pVal){longvalue=*pVal;*pVal=value*value*value;returnS_OK;}
注意这里使用了__uuidof(ImyInterface)来获取接口的IID,这是因为我们已经在第一步中将这个接口关联到了某个uuid。 最后一步:COM组件的DLLs必须输出一个叫DllGetClassObject的函数。由这个函数为CmyInterface创建类工厂并返回一个 对它的引用。然后我们调用CoCreateInstance为进程内COM创建类工厂,接着调用DllGetClassObject。这个类工厂有一个方 法是CreateInstance,由这个方法创建对象并返回对它的引用。
简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。 组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。 组件是C++ Builder环境中最令人激动的部分。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。VCL和CLX组件是C++ Builder系统的核心。 二、组件应用 使用现成的组件来开发应用程序时,组件工作在两种模式下:设计时态和运行时态。 在设计时态下,组件显示在C++ Builder窗体编辑器下的一个窗体中。设计时态下组件的方法不能被调用,组件不能与最终用户直接进行交互操作,也不需要实现组件的全部功能。 在运行状态下,组件工作在一个确实已经运行的应用程序中。组件必须正确地将自身表示出来,它需要对方法的调用进行处理并实现与其他组件之间有效的协同工作。 设计时态下所有的组件在窗体中都是可见的,但在运行时态下不一定可见。如TTable、TQuery和TDataSet在运行时态下就不可见,但他们均完成了重要的功能。 三、组件创建 创建组件就是自行设计制作出新的组件。 设计组件是一项繁重的工作。自行开发组件与使用组件进行可视化程序开发存在着极大的不同,要求程序员熟知原有的VCL类库结构,精通面向对象程序设计。 设计组件是一项艰苦的工作。对于组件的开发者,组件是纯粹的代码。组件的开发不是一个可视化的开发过程,而是用C++或Object Pascal严格编制代码的工作。实际上,创建新组件使我们回到传统开发工具的时代。虽然这是一个复杂的过程,但也是一个一劳永逸的过程。 创建组件的最大意义在于封装重复的工作,其次是可以扩充现有组件的功能。 组件创建过程包括设计、开发、调试(就是所谓的3D's)工作,然后是组件的使用。 组件开发者应该掌握的三项主要内容是:属性、事件和方法。 asp中的组件 asp组件一般来说是以DLL为后缀的文件存在在。它允许使用者根据不同需要,来调用系统COM组件,以完成所要达到目的。 常用的有:上传组件、email组件、统计组件、文件管理组件等。。。 通常asp组件可以通过VB6来进行开发和编译(如果你会vb的话可以自己开发)。当然C或C++开发的也同样可以在asp中使用或在客户端脚本javascript中使用。 但在.net平台无法使用。 调用方法:在asp中调用前须先把组件注册到系统里。 然后通过 set obj = server.createobject("工程名.类名") 进行实例化。 像 set rs = server.createobject("adodb.recordset")
希望对你有帮助
热心网友
时间:2024-03-09 17:48
第一 对的 组件实现接口就像类实现公开函数.容器通过维护一个组件对象 就好像实例化这个类.
第二 接口是有组件提供,组件也继承了几个基本的接口例如IUnknown.这是COM标准了.
第三 第四 这正是COM的价值所在.设计它就是为了能在不同的语言环境下通用的.DLL也有类似的作用,区别可以百度一下.接口是vc提供 但是标准都是COM的.你不觉得VC写COM那些代码和通常的c++代码看起来很怪异吗.
你所关注的其实对于开发者来说,要处理的差异主要还是参数.这个其实很容易解决.本质上数据都是0和1嘛
第五 组件的.容器理解为你的程序,组件理解为C++类,接口理解为Public函数
热心网友
时间:2024-03-09 17:49
1.对
2.接口由组件提供
3.4.同一接口VC中与VB中调用方式是一样的,所以可调用
5.对,接口是组件的成员函数
去这里看看
http://blog.csdn.net/feijj2002_/archive/2005/08/27/466276.aspx
热心网友
时间:2024-03-09 17:49
你可以理解容器是个暗盒,里边的东西(组件)看不见,接口就是盒子上的一个开口。也可以拿个关闭的房子作比较,组件就是里边的家具,房子的门就是接口,房子本身就是容器。你只有通过门才能看到里面,所以说,容器要实现对组建的调用肯定是通过接口来实现。vc做的控件在vb可以用,因为vc是通过mfc实现的控件,而mfc可以理解为windows提供给我们的api,里面具体如何实现我们只需掌握mfc中的接口函数,内部具体操作不能看到。接口是谁的函数这个不能这么说,只能说mfc中某些函数实现某种特定功能,而这些mfc函数就是我们要说的接口函数。
热心网友
时间:2024-03-09 17:50
把一个软件当成容器,软件中有许多功能块,每个块可看成 com组件
比如一个日历组件, 软件可通过一定的函数属性设置和调节日历的年月日外观。这些函数就是接口
一名优秀的程序员是这样炼成的
VB是不够完全的面向对象编程工具,VC++是完全编译语言,VB是本地编译语言,不够完全,VC++效率高,封装性好,继承性高,VB效率相对低了很多,但界面友好,二者只能取其一,或者使用VC++,VB辅助(因为VB开发快),当然Delphi,BCB也是不错的选择。程序员不应依赖开发工具,程序员更应该拥有的是一种思维、一种精神、一种观念。
microct分析软件
MicroCT分析软件是处理和分析微型计算机断层扫描成像(MicroCT)数据的强有力工具。该软件广泛应用于生物医学、材料科学等领域,帮助研究人员实现微观结构的三维重建与精确分析。它通常具备用户友好的图形界面,支持数据导入、图像预处理、三维重建、数据分析及结果导出等功能。在英华检测(上海)有限公司,我们为客户提供多款先进的MicroCT分析软件,以满足不同领域的研究需求。英华检测|工业CT设备销售|工业ct和X射线检测服务丨4008959688 英华检测(上海)有限公司,专业从事工业CT/X射线设备销售及配套工业CT/X射线检测服务。目前在上海、东莞、北京、西安分别设有办公室,总部位于上海。公司计划将在全国其他区域设立实验...
如何才能成为电脑高手?
1. 熟悉操作系统:掌握操作系统的基本操作、文件管理、安装软件等基本技能,例如Windows、macOS等。2. 学习编程语言:掌握至少一种编程语言,例如Python、Java、C++等,可以从编程基础、算法和数据结构等方面开始学习,进行自我实践和项目开发。3. 掌握常用软件:了解并熟练使用常用的软件,例如Microsoft Office...
VC是什么?
VC是许许多多技术的综合,就好象少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括: 1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。 2、C语言基础 3、C++最基本内容:类、继承性、封装性、多态性的概念 4、如何用向导建立一个程序框架 5、...
如何成为一名编程高手
首先需要阅读源程序,这是基础,必须看懂每一行代码,并能指出为什么作者会这么写,还有没有其它写法、并且一定要搞清楚哪种运行效率最好、哪种更易于理解及维护,尤其是一定要阅读一些开源软件的源程序,比如LINUX 内核源程序等,这是直接提高自己的捷径,其次就是动手写,写又分修改源程序为已所用,一定...
怎么成为计算机高手
业内精英少,掌握核心技术的少,所以中国,至少在信息技术方面还是落后的。 5 不是没人愿意教你,而是你提出这样的要求,就证明你基础还不行,而要学习这些是需要很多基础的,不要求精通,至少要达到熟悉的程度,如计算机的工作原理、系统核心、脚本、数据库、TCP...>> 问题五:怎么快速成为计算机高手? 首先,支持你...
有人问学习vc为什么难,我的看法
进程、线程同步等一些知识,这个方面的经典书籍有《windows 核心编程》,《programming windows》等,还有MSDN是关于WINAPI最权威的帮助。还更多的东西请自己再去找。3、就是更深地了解VC开发环境和MFC库,这个的好书也很多,不过这方面是我的弱点,知道的书有:《VC++ 技术内幕》,《深入浅出MFC》...
VC前景简论
我认为VC的前途未必很明朗,当然我只说我们这个国内的产业。看看情况,国内做产品的很少,大多都是做个小项目什么的。所以用VC的就不多,简单的用VB就能解决,复杂的做不了...而且近年流行WEB的BS模式,所以JAVA/.NET甚至PHP的都火了,可是C++程序员一直不火,VC就更别提了。说到VC,不能不说MS,当年MS...
黄晓明是如何成为VC理财高手的?
黄晓明和Angelababy的婚礼无疑显示了他们的财力与豪气,但他们在娱乐圈的另一重身份——VC理财高手,更是引人注目。黄晓明凭借好人缘和敏锐的投资眼光,涉足红酒、影视、高尔夫球等多个领域,成就了过亿的财富。1、红酒投资方面,他与好友合作引进法国拉菲等红酒,一年内收回全部投资,甚至独自购入的红酒也让...
懂编程的高手...请进!菜鸟也可以进但不要瞎说...拜托!
1.编程语言分多种.就是根据他们的特点来分的,现在编程语言不仅仅是定义一种语言,还要有好的 开发环境。如vb和delphi都有很好的界面,而vc更适合系统软件的开发,而java适于网络和跨平台 的软件的开发,而javascript和vbscript等适于网页和简单的编程,理解他们去别的方法就是学习 他们.在学习中发现区别...
怎样才能提高编程技术?
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去...