如何使用COM 目前我手头只有有一个DLL,在VC的Object Viewer中可以看到所有的方法。但是不知道怎样使用此COM能不能给点提示?如果有例子就更好了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你确认这是个COM组件而不是普通DLL?先regsvr32这个DLL,然后在注册表里面找到CLSID,然后CoCreateInstance(CLSID). 确认是COMCLSID已经拿到,但是不知道怎么调用里面的方法,能不能给点提示?没有用过COM啊,多谢了 #include "stdafx.h"#include <iostream>using namespace std;#import "ATLSimple.dll" no_namespace#include <atlbase.h>int _tmain(int argc, _TCHAR* argv[]){ ::CoInitialize(NULL); CComPtr<IAddData> spAddData; HRESULT hr = spAddData.CoCreateInstance(__uuidof(AddData)); if ( FAILED(hr) ) { cout << "接口创建失败!"<<endl; return -1; } BSTR bstr = ::SysAllocString(L"aaaa"); spAddData->AddDatas(bstr); ::SysFreeString(bstr1); spAddData.Release(); ::CoUninitialize(); return 0;}注:1。ATLSimple.dll是你的组件(别忘了copy到你的当前工程下一个) 2。IAddData是ATLSimple一个接口,用ATL的CComPtr智能指针包一下然后使用,比较方便 3。AddDatas是IAddData的一个方法。 隐藏切分窗口,显示原视的问题,求教 客户端20秒一次心跳包,服务器心跳处理设置成几秒合理点? 怎么用zlib解压zip文件? 拖放按钮的问题 如何在动态加载调用dll中的导出类 ###数据库啊 数据库 大大们救我 CFileFind搜索到的文件在系统隐藏了已知文件类型文件的扩展名后,怎么得到搜索到的文件扩展名啊? 一个关于网络流量的问题! 大家帮我看看,这是怎么回事(数据库) 如何把asccii字符串转化为unicode形式的字符串??? 请问大家如何更改VC6.0中F1键的关联? 有谁知道bt,emule使用的是什么安装软件么?
CLSID已经拿到,但是不知道怎么调用里面的方法,能不能给点提示?
没有用过COM啊,多谢了
#include <iostream>
using namespace std;#import "ATLSimple.dll" no_namespace
#include <atlbase.h>int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize(NULL); CComPtr<IAddData> spAddData;
HRESULT hr = spAddData.CoCreateInstance(__uuidof(AddData));
if ( FAILED(hr) )
{
cout << "接口创建失败!"<<endl;
return -1;
} BSTR bstr = ::SysAllocString(L"aaaa"); spAddData->AddDatas(bstr); ::SysFreeString(bstr1); spAddData.Release();
::CoUninitialize();
return 0;
}注:1。ATLSimple.dll是你的组件(别忘了copy到你的当前工程下一个)
2。IAddData是ATLSimple一个接口,用ATL的CComPtr智能指针包一下然后使用,比较方便
3。AddDatas是IAddData的一个方法。