谁知道在vc中如何调用com组件???急 使用smart pointer:如对象为yourcom.MyCom#import "x:\xxx\yourcom.dll" no_namespaceIMyComPtr pMyCom(__uuidof(MyCom));pMyCom->MyMethod(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用smart pointer:如对象为yourcom.MyCom#import "x:\xxx\yourcom.dll" no_namespaceIMyComPtr pMyCom(__uuidof(MyCom));pMyCom->MyMethod();....pMyCom->Release(); 使用IUnknown指针,以下是两个有用的函数HRESULT GetUnknown(WCHAR * strProgID, IUnknown ** ppunknown){/**********************************************************************/ CLSID clsid; HRESULT hresult = ::CLSIDFromProgID(strProgID, &clsid); hresult = ::CoCreateInstance(clsid,NULL,CLSCTX_SERVER, IID_IUnknown,(void **)ppunknown);/***********************************************************************/ return S_OK;};HRESULT GetInterface(IUnknown * punknown, REFIID riid, IUnknown ** ppunknown){ HRESULT hresult = punknown->QueryInterface(riid,(void **)ppunknown); return S_OK;};比如你的COM接口为IMyClient4#include "你的COM的头文件"#include "你的COM的.c文件"IUnknown *punknown;IMyClient4 *pMyClient;GetUnknown(L"EventClient4.MyClient4",&punknown);GetInterface(punknown,IID_IMyClient4,(IUnknown **)&pMyClient); OH MY god .what are you doing ?what you mean is com pooling or creating a comobject? and located or remoted ? com已经死了,看看.net吧。ATL现在变化挺大,不过很多东西是为了写服务器,跟com无关。微软说com用于和传统的com代码通信,将来用基于.net的组件.com+已经是.net的一部分,使用起来简单多了。忘了addref和IDL吧! 如何在vc中调用远程vb编写的dll组件? breakpoint 关于OnCtlColor的问题 关于FD_WRITE事件,从来没有考虑到的问题,大家近来看看 问清楚点吧,我觉得应该要进行编码转换的 请问SOCKET通信中,中断以后怎么能够迅速的重新建立连接 如何让编辑框里面的字符自动换行? 怎样对两张表进行一致性检查?(包括字段名称,字段类别.) red hat linux7.2中运行java程序,中文都是方块? 在java界面设计中,怎么设置鼠标的移动范围!!! 如何编程序实现DISABLE网络连接 入门问题... 请问如何在COM的函数中返回一个记录集?
pMyCom->Release();
HRESULT GetUnknown(WCHAR * strProgID, IUnknown ** ppunknown)
{
/**********************************************************************/
CLSID clsid;
HRESULT hresult = ::CLSIDFromProgID(strProgID, &clsid);
hresult = ::CoCreateInstance(clsid,NULL,CLSCTX_SERVER,
IID_IUnknown,(void **)ppunknown);
/***********************************************************************/
return S_OK;
};HRESULT GetInterface(IUnknown * punknown, REFIID riid, IUnknown ** ppunknown)
{
HRESULT hresult = punknown->QueryInterface(riid,(void **)ppunknown);
return S_OK;
};
比如你的COM接口为IMyClient4
#include "你的COM的头文件"
#include "你的COM的.c文件"
IUnknown *punknown;
IMyClient4 *pMyClient;
GetUnknown(L"EventClient4.MyClient4",&punknown);
GetInterface(punknown,IID_IMyClient4,(IUnknown **)&pMyClient);
object?
ATL现在变化挺大,不过很多东西是为了写服务器,跟com无关。
微软说com用于和传统的com代码通信,将来用基于.net的组件.
com+已经是.net的一部分,使用起来简单多了。忘了addref和IDL吧!