我是 COM 库的新手,并且一直坚持在我的 C++ Builder (XE2) 应用程序中使用 COM DLL。 DLL 已注册。哪些步骤允许我创建属于此类 DLL 的对象并调用它们的方法?我的意思是静态的。
我找不到教程,但我看到了不同的方法:
#import "C:\Path\to\the\LIB1.dll" rename_namespace ("LIB1")
... 然后什么?
CoCreateInstance
...具体如何?没有导入/包含? 在 Visual C# 中,我只是添加一个引用和一个
using
来处理它!我很困惑!任何帮助表示赞赏。
最佳答案
我找到了一种方法(但请告诉我是否有更好的方法):
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();
其中
Company
是原始类,由 DLL 公开,我想说明它。Introduction to COM - What It Is and How to Use It. 对我帮助很大。
注意 这需要 创建 *_TLB.* 和 *_OCX.* 单元 。有没有办法避免它?
关于c++ - 在 C++ Builder 中使用 COM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13456628/