2014-04-07 105 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

相關問題