诸位大师,小弟想在C里面实现对COM组件的调用(这应该是可能的吧?)。我在坛子里面深入查找了很久,也没有发现大师们关于这件事情(或与之类似的)丝毫论述(原来查找也需要高明的技术,哎....)。
大师们能给个用C调用COM组件的Hello World程序吗?
(当然如果能够看到大师们的精彩程序在C里面就启动了EXCEL之类的庞大程序的话,那,怎么说呢?只能是敬仰之情如滔滔江水、绵绵不绝了.....)
大师们能给个用C调用COM组件的Hello World程序吗?
(当然如果能够看到大师们的精彩程序在C里面就启动了EXCEL之类的庞大程序的话,那,怎么说呢?只能是敬仰之情如滔滔江水、绵绵不绝了.....)
解决方案 »
- 非常简单的一个问题!!在线等,马上给分!
- 新手问题
- VC程序启动时的错误
- [求助]在主框架控制栏内用代码添加了一个CEditCtrl,实现当在编辑框控件内回车时,把编辑框CEditCtrl内的字符传出,并赋给一个变量!请多
- 想转入 VC 编程,请高手给一些建议
- 我调试程序时,为什么会提示说端口80被占用呢?
- 又碰到了这类迷茫的小问题
- 如何将对话枢同用FRAME的一个位图文件放大显示
- ADO+Microsoft DataGrid Control, Version 6.0 (OLEDB),静态绑定时的有关Column的问题。
- 找工作
- 我什么我编写的从纯模板虚类派生出来的子类,所有的函数实现都必须写在.h文中,否则编译不能通过??
- 防火墙能挡住病毒吗?冲击波一类的?
你必须显式地引用对象的vtable。
每一个COM对象都有一个vtable,它包含了一个对象所有方法的指针列表。一个接口指针会指向vtable中的合适位置,这个轮到的位置中包含的就是指向你调用的特定方法的指针。vtable在本文档的其它地方都不会被提及,因为对于C++来说vtable是完全不可见的。然而,如果你希望用C调用COM方法就必须涉及到这个更为不直观的概念,你得显式地引用vtable。
下面这句代码演示了怎样在C++约定下调用IDirectPlay8Peer::Initialize方法。 g_pDP->Initialize(NULL,DirectPlayMessageHandler,0); 为了用C调用同样这个方法,则要使用如下的语法。约定vtable指针名为lpVtbl。 g_pDP->lpVtbl->Initialize(g_pDP,NULL,DirectPlayMessageHandler,0);