Я хочу использовать COM DLL в моей библиотеке C ++.
То, как я решил, это импортировать файл .tlb библиотеки DLL, что я и сделал:
#import "mycom.tlb" no_namespace
Проблема в том, что я не знаю, где разместить эту декларацию. это должно быть внутри файла H или файла CPP? или, может быть, файл stdafx.h?
Я попытался поместить его в файл .cpp, просто для тестирования.
в файле H я объявил этого участника:
ILogicSecuredPtr m_pbLogic;
(где ILogicSecured - интерфейс, с которым я хочу работать в моей COM dll)
Затем я добавил это в конструктор для создания экземпляра интерфейса:
CoInitialize(NULL);
m_pbLogic(__uuidof(LogicSecured));
(где LogicSecured - имя объекта, реализующего интерфейс)
В деструктор я добавил:
CoUninitialize();
Однако это не скомпилируется, независимо от того, где я пытаюсь разместить объявление #import.
он просто не распознает объект ILogicSecured.
Я получаю эту ошибку в файле H:
Error 2 error C2146: syntax error : missing ';' before identifier 'm_pbLogic'
Я должен также упомянуть, что когда я F12 (в Visual Studio) в объявлении ILogicSecuredPtr, он прекрасно переносит меня в файл tlh. Так что я знаю, что это признает.
Что я здесь не так делаю?
Большое спасибо.
Roey