Я новичок в библиотеках COM, и я застрял на использовании COM DLL в моем приложении C ++ Builder (XE2). DLL зарегистрирована. Какие шаги позволяют мне создавать объекты, принадлежащие такой DLL, и вызывать их методы? Я имею в виду статически.
Я не мог найти учебник, хотя я видел разные способы:
импортировать DLL с абсолютным путем (почему? она зарегистрирована в системе)
#import "C:\Path\to\the\LIB1.dll" rename_namespace ("LIB1")
… и что потом?
CoCreateInstance
… как именно? без импорта / включения?В Visual C # я имею дело с этим, просто добавив ссылку и using
!
Я очень смущен! Любая помощь приветствуется.
Я нашел способ (но скажите, есть ли лучшие):
в клиентском классе напишите этот код для использования 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();
куда Company
был оригинальный класс, представленный библиотекой DLL, которую я хотел реализовать.
Введение в COM — что это такое и как его использовать. очень помог мне
Заметка что это требует создание единиц * _TLB. * и * _OCX. *. Есть ли способ избежать этого?
Других решений пока нет …