我是COM库的新手,我坚持在我的C Builder(XE2)应用程序中使用COM DLL. DLL已注册.哪些步骤允许我创建属于这种DLL的对象并调用它们的方法?我的意思是静态的.
我找不到教程,而我看到了不同的方式:
>组件>导入组件>它会产生一个新的包装单元……然后是什么?
>使用绝对路径导入DLL(为什么?它在系统中注册)
#import "C:\Path\to\the\LIB1.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.*单位.有没有办法避免它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。