加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C Builder中使用COM

发布时间:2020-12-16 07:02:14 所属栏目:百科 来源:网络整理
导读:我是COM库的新手,我坚持在我的C Builder(XE2)应用程序中使用COM DLL. DLL已注册.哪些步骤允许我创建属于这种DLL的对象并调用它们的方法?我的意思是静态的. 我找不到教程,而我看到了不同的方式: 组件导入组件它会产生一个新的包装单元……然后是什么? 使用
我是COM库的新手,我坚持在我的C Builder(XE2)应用程序中使用COM DLL. DLL已注册.哪些步骤允许我创建属于这种DLL的对象并调用它们的方法?我的意思是静态的.

我找不到教程,而我看到了不同的方式:

>组件>导入组件>它会产生一个新的包装单元……然后是什么?
>使用绝对路径导入DLL(为什么?它在系统中注册)

#import "C:PathtotheLIB1.dll" rename_namespace ("LIB1")

… 然后什么?
>使用CoCreateInstance ……究竟是怎么回事?没有import / include?

在Visual C#中,我只需添加引用和使用即可处理它!

我很困惑!任何帮助表示赞赏.

解决方法

我找到了一种方法(但是告诉我是否有更好的方法):

>组件>导入组件…>导入类型库>选择库
> Unit Dir Name =并取消选中“Generate Component Wrappers”
>“将单位添加到MyProject.cbproj项目”>完
>在客户端类>文件>使用单位…>选择已创建的单位
>在客户端类中编写此代码以使用COM DLL:

CoInitialize(NULL); //Init COM library DLLs  

ICompany *company;        

HRESULT hr = CoCreateInstance ( CLSID_Company,NULL,CLSCTX_INPROC_SERVER,IID_ICompany,(void**) &company );  
if (SUCCEEDED (hr)) {  
     //TODO here you can use your company object!
     //and finally release such resource
     company->Release();  
}  

CoUninitialize();

公司是原始类,由DLL公开,我想要实例化.

Introduction to COM – What It Is and How to Use It.给了我很多帮助.

请注意,这需要创建* _TLB.*和* _OCX.*单位.有没有办法避免它?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读