一个最简单的com组件的例子(C++)
2005-10-26 16:05
483 查看
一个最简单的com组件的例子:)
定义了两个纯抽象基类Ix,Iy来做为组件的接口,然后定义组件CA来继承这两个接口,做为CA的多接口实现,然后在一个客户端显示了对此组件多接口的调用。
#include<iostream.h>
#include<objbase.h>
void trace1(const char* pMsg){cout<<pMsg<<endl;}
//first interface;
interface Ix
{
virtual void _stdcall Fx1()=0;
virtual void _stdcall Fx2()=0;
};
//second interface
interface Iy
{
virtual void _stdcall Fy1()=0;
virtual void _stdcall Fy2()=0;
};
//component
class CA: public Ix,public Iy
{
public:
virtual void _stdcall Fx1()
{
cout<<"Fx1"<<endl;
}
virtual void _stdcall Fx2()
{
cout<<"Fx2"<<endl;
}
virtual void _stdcall Fy1()
{
cout<<"Fy1"<<endl;
}
virtual void _stdcall Fy2()
{
cout<<"Fy2"<<endl;
}
};
//client main program
void main()
{
trace1("client:");
//创建组件的实例
CA *pa=new CA;
pa->Fx1();
trace1("Client: use Ix interface");
//创建接口的指针
Ix *pIx=pa;
pIx->Fx1();
pIx->Fx2();
trace1("Client: use Iy interface");
Iy *pIy=pa;
pIy->Fy1();
pIy->Fy2();
trace1("client: delete the component");
delete pa;
}
在目前C++中,com组件有三个关键之处:
(1)COM接口是由C++中的纯抽象基类来实现的。
(2)COM组件可以提供多个接口。
(3)一个C++类可以利用多继承来实现一个可以提供多个接口的组件。
定义了两个纯抽象基类Ix,Iy来做为组件的接口,然后定义组件CA来继承这两个接口,做为CA的多接口实现,然后在一个客户端显示了对此组件多接口的调用。
#include<iostream.h>
#include<objbase.h>
void trace1(const char* pMsg){cout<<pMsg<<endl;}
//first interface;
interface Ix
{
virtual void _stdcall Fx1()=0;
virtual void _stdcall Fx2()=0;
};
//second interface
interface Iy
{
virtual void _stdcall Fy1()=0;
virtual void _stdcall Fy2()=0;
};
//component
class CA: public Ix,public Iy
{
public:
virtual void _stdcall Fx1()
{
cout<<"Fx1"<<endl;
}
virtual void _stdcall Fx2()
{
cout<<"Fx2"<<endl;
}
virtual void _stdcall Fy1()
{
cout<<"Fy1"<<endl;
}
virtual void _stdcall Fy2()
{
cout<<"Fy2"<<endl;
}
};
//client main program
void main()
{
trace1("client:");
//创建组件的实例
CA *pa=new CA;
pa->Fx1();
trace1("Client: use Ix interface");
//创建接口的指针
Ix *pIx=pa;
pIx->Fx1();
pIx->Fx2();
trace1("Client: use Iy interface");
Iy *pIy=pa;
pIy->Fy1();
pIy->Fy2();
trace1("client: delete the component");
delete pa;
}
在目前C++中,com组件有三个关键之处:
(1)COM接口是由C++中的纯抽象基类来实现的。
(2)COM组件可以提供多个接口。
(3)一个C++类可以利用多继承来实现一个可以提供多个接口的组件。
相关文章推荐
- 一个最简单的OSG例子源代码(C++)
- C++——一个简单的多文件具体例子
- Linux下,使用C/C++编写"静态链接库"的一个简单例子
- 一个利用友元函数结合C和C++的简单例子
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- [C++] Windows下的socket编程(这是一个简单的TCP/IP例子)
- c++重载io输入输出操作符的一个简单例子
- C++简单例子说明一个问题
- C++多态是如何实现的——一个简单明晰的例子告诉你!
- 用Boost::spirit库写C++的源代码解析器(一) 一个简单的例子:解析enum的解析器雏形
- [原][译][lua][luabridge]一个简单的luabridge与c++例子结合例子
- 简单的一个C++中traits功能的实现例子
- C++调用Lua读取配置文件的一个简单例子
- C++调用C# com组件:一个完整的的小例子
- 一个c++获取ip的简单例子
- 一个简单例子让你了解C++命名空间
- [C++] Windows下的socket编程(这是一个简单的TCP/IP例子)
- 一个简单的例子理解C++ map, 运用map统计单词出现的次数
- qt qml和c++交互的一个简单例子
- 一个简单的例子理解C++ map, 运用map统计单词出现的次数