聚热点 juredian

谢世强:com接口数据线是什么意思

Roger的回答:

我晕,看了楼上的回答,我快疯掉了。。。

COM接口就是为了实现数据交换的接口,一般就是USB接口,COM口两种,统称为COM口,你接上不能用的原因是,你没装驱动,这个手机光盘里应该有的。换句话说,你不装驱动,电脑不认识你的数据线。

Roger的回答:

我晕,看了楼上的回答,我快疯掉了。。。

COM接口就是为了实现数据交换的接口,一般就是USB接口,COM口两种,统称为COM口,你接上不能用的原因是,你没装驱动,这个手机光盘里应该有的。换句话说,你不装驱动,电脑不认识你的数据线。

汏汏の浪漫的回答:

计算机程序是通过一组函数而进行连接的,这组函数就是定义了程序中不同部分的接口。 DLL的接口就是它所输出的那些函数。 C++类的接口就是该类的成员函数集。 COM中的接口是一组由组件实现的提供给客户使用的函数。 在COM中接口是一个包含函数指针数组的内存结构,数组元素是一个由组件实现的函数地址。 Question: 接口的作用是什么? Answer: 有了组件如何将它们连接起来构成某个应用程序,需要用接口。 在COM中接口就是一切,对客户说组件就是接口集,客户只能通过接口和组件打交道。 说明接口可以保护系统免受外界变化的影响。这是封装的体现。 接口实现了使用户使用同样的方式来处理不同的组件。这是多态的体现。 Question: 接口的如何实现? Answer: COM接口在C++中是用纯抽象基类实现。 一个COM组件可以支多个接口。 一个C++类可以使用多重继承来实现一个支持多个接口的组件。 组件可以支持任意数目的接口。 接口应该具有不变性。在组件升级时应该不修改原来的接口,而是添加新的接口。 要精心设计实现接口,以使之能够支持各种不同的实现。 Question: 什么是IUnKnown? Answer: IUnKnown是一个接口。 所有COM接口都继承IUnKnown。 IUnKnown的定义在WIN32 SDK中的UNKNWN头文件中。 ///IUnKnown的定义 interface IUnKnown { virtual HRESULT __stdcall QueryInterface(const IID& iid,void **ppv)=0; virtual ULONG __stdcall AddRef()=0; virtual ULONG __stdcall Release()=0; } Question: QueryInterface函数的作用是什么? Answer: QueryInterface是IUnKnown的成员函数,客户可以通过此函数来查询组件是否支持某个特定的接口。 QueryInterface函数返回一个指向组件支持的接口的指针。 如果QueryInterface函数没有找到组件支持的接口则返回指针是NULL。 QueryInterface函数可以使用if…then…else语句、数组、散列表、树来实现。 QueryInterface函数不能使用case语句,因为QueryInterface函数返回的是一个HRESULT结构而不是一个数。 QueryInterface也是一种无封处理组件版本的机制。这种机制使得组件的新旧不同的版本可以互操作。 Question: QueryInterface函数的实现规则是什么? Answer: QueryInterface返回的IUnKnown指针总是相同。 若客户获得了某个接口,那么它总能获得此接口。 客户可以再次获得已经拥有的接口。 客户可以返回到起始接口。 若能够在某个接口获得某个特定接口,那么从任意接口都将可以获得此接口。 Question: QueryInterface函数的参数IID是什么? Answer: 它是一个结构,接口标识符结构。 IID标识了客户所需的接口。 每一个接口都有一个唯一的接口标识符。所以某个与IID相对应的接口绝对不会发生变化。 接口IID决定了COM组件的版本。 不同的接口具有不同的ID,包括不同版本的接口。 Question: 何时需要建立一个新的COM组件版本? Answer: 当为已有接口指定新的ID时应该是下面的条件至少有一个成立。 接口中函数的数目发生改变时。 接口中函数的顺序发生改变。 接口中某个函数的参数发生改变 接口中某个函数的参数的顺序发生改变 接口中某个函数的参数的类型发生改变 接口中函数的返回值发生改变 接口中函数的返回值类型发生改变 接口中函数的参数的含义发生改变 接口中函数的含义发生改变 简单地说,COM是一种跨应用和语言共享二进制代码的方法。与C++不同,它提倡源代码重用。ATL便是一个很好的例证。源码级重用虽然好,但只能用于C++。它还带来了名字冲突的可能性,更不用说不断拷贝重用代码而导致工程膨胀和臃肿。 Windows使用DLLs在二进制级共享代码。这也是Windows程序运行的关键——重用kernel32.dll, user32.dll等。但DLLs是针对C接口而写的,它们只能被C或理解C调用规范的语言使用。由编程语言来负责实现共享代码,而不是由DLLs本身。这样的话DLLs的使用受到限制。 MFC引入了另外一种MFC扩展DLLs二进制共享机制。但它的使用仍受限制——只能在MFC程序中使用。 COM通过定义二进制标准解决了这些问题,即COM明确指出二进制模块(DLLs和EXEs)必须被编译成与指定的结构匹配。这个标准也确切规定了在内存中如何组织COM对象。COM定义的二进制标准还必须独立于任何编程语言(如C++中的命名修饰)。一旦满足了这些条件,就可以轻松地从任何编程语言中存取这些模块。由编译器负责所产生的二进制代码与标准兼容。这样使后来的人就能更容易地使用这些二进制代码。 在内存中,COM对象的这种标准形式在C++虚函数中偶尔用到,所以这就是为什么许多COM代码使用C++的原因。但是记住,编写模块所用的语言是无关的,因为结果二进制代码为所有语言可用。 此外,COM不是Win32特有的。从理论上讲,它可以被移植到Unix或其它操作系统。但是我好像还从来没有在Windows以外的地方听说过COM。 [编辑本段]英语中的com 1、表示共同或相同,意为“共同,互相,一起”; 除此之外,还有col,cor,co,syn,sym,syl,syr;另sup表共同,互 相;homo表相同,同;as表相同,类似;iso表等,同。 2、表示加强或引申意义; 同类前缀还有:be,a,ac,af,en,em,col,cor. com-和con-前缀有表示“共同,一起”的意思。如connect, combine,combat等。 据我在英英字典里查com的意思,它给出的解释是:当其形式为.com的时候,表示的是与商业有关的意思. 据我后来在网上查到的词根表里的解释,com意为共同,与co和con同义.

李美玲的回答:

搜索建议:
热传

 人身损害赔偿项目

问:人身损害赔偿项目律师解答:人身损害的赔偿项目是:1、包括医疗费、误工费、护理费、交通费、住宿费、住院伙食补助费、必要的营养费。2、因伤致残的,赔偿项目还包括...(展开)

热传

 苹果iPhone 14海致敬经典...

近日,有海外用户发现苹果iPhone 14的宣传海报的无论是布局、配色都十分像1998年苹果发布的iMac G3台式电脑当年的宣传海报,同样的五种机身配色,同样...(展开)