我希望在我的C++库中使用一个COM DLL。我想到的方法是通过#import导入DLL的.tlb文件,我已经完成了这个步骤:
#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'
我还应该提到,当我在Visual Studio中按F12()对ILogicSecuredPtr声明进行操作时,它可以很好地带我到tlh文件。所以我知道它被识别了。
我在这里做错了什么?
非常感谢。 Roey