2014-04-07 106 views
7

我正在尝试构建我的第一个ATL DLL项目,其中使用了ADODB。这里的问题是,我得到各个ADODB类强调错误:名称后跟'::'必须是类或名称空间名称

ADODB::_ConnectionPtr spADOConnection; 

当我在通过鼠标ADODB::_ConnectionPtr我得到name followed by '::' must be a class or namespace namespADOConnection我得到expected a ';'。请问这是什么意思?我该如何修复它?

非常感谢!

+2

看起来像C++不知道ADODB是一个类或名称空间,是否正确包含/链接到您的项目?编译期间是否收到任何外部符号错误? –

+0

@ Gmercer015,我已经正确地包含'msado60.dll',是的我在LNK2001上得到一个外部符号:无法解析的外部符号public:virtual long __stdcall CTProcessus :: Init(class ATL :: CStringT>>,wchar_t *,wchar_t *,wchar_t *)“' –

+2

您不包含DLL,包含头文件。 – juanchopanza

回答

10

编译器无法找到ADODB的声明。确保在编译器抱怨的翻译单元中包含相关头文件。

+0

我认为我已经正确地包含'msado60.dll' –

+1

编译器已经与在更晚阶段发生的DLL无关。这更多的是在代码生成阶段,编译器需要验证您尝试使用的类型。应该有一个头引入'ADODB'类型的头部。确保它包含在您要编译的源文件中。 – legends2k

相关问题