2014-04-07 100 views
7

Sto provando a creare il mio primo progetto DLL ATL, in cui sto usando ADODB. Il problema qui è che sto ricevendo ogni classe ADODB sottolineato: nome seguito da "::" deve essere un nome di classe o spazio nomi

ADODB::_ConnectionPtr spADOConnection; 

quando passo il mouse sopra il ADODB::_ConnectionPtr ottengo name followed by '::' must be a class or namespace namespADOConnection ottengo expected a ';'. Qual è il significato di questo, per favore? Come posso risolvere il problema per favore?

Grazie mille!

+2

sembra che C++ non sappia che ADODB è una classe o uno spazio dei nomi, è tutto correttamente incluso/collegato nel progetto? Si verificano errori di simboli esterni durante la compilazione? –

+0

@ Gmercer015, ho incluso correttamente 'msado60.dll', sì ho trovato un simbolo esterno su' LNK2001: simbolo esterno non risolto 'public: virtual long __stdcall CTProcessus :: Init (classe ATL :: CStringT>>, wchar_t *, wchar_t *, wchar_t *) "' –

+2

Non si includono DLL, si includono i file di intestazione. – juanchopanza

risposta

10

Il compilatore non è in grado di individuare la dichiarazione di ADODB. Assicurati di includere l'intestazione pertinente nell'unità di traduzione in cui si lamenta il compilatore.

+0

Penso di aver incluso correttamente 'msado60.dll' –

+1

Il compilatore non ha nulla a che fare con le DLL che arrivano in una fase molto successiva. Questo è più nella fase di generazione del codice in cui il compilatore deve verificare il tipo che si sta tentando di utilizzare. Dovrebbe esserci un'intestazione in cui viene introdotto il tipo 'ADODB'. Assicurati che sia incluso nel file sorgente che stai cercando di compilare. – legends2k

Problemi correlati