2014-04-07 40 views
7

Tôi đang cố gắng xây dựng dự án ATL DLL đầu tiên của mình, trong đó tôi đang sử dụng ADODB. Vấn đề ở đây là tôi nhận được mỗi lớp ADODB nhấn mạnhlỗi: tên theo sau là '::' phải là tên lớp hoặc không gian tên

ADODB::_ConnectionPtr spADOConnection; 

khi tôi vượt qua chuột lên trên ADODB::_ConnectionPtr tôi nhận được name followed by '::' must be a class or namespace namespADOConnection tôi nhận được expected a ';'. Ý nghĩa của việc này là gì, làm ơn? Làm thế nào để tôi sửa nó?

Cảm ơn rất nhiều!

+2

có vẻ như C++ không biết rằng ADODB là một lớp hoặc không gian tên, là mọi thứ được bao gồm/liên kết chính xác trong dự án của bạn chưa? Bạn có nhận được bất kỳ lỗi biểu tượng bên ngoài nào trong quá trình biên dịch không? –

+0

@ Gmercer015, tôi đã bao gồm chính xác 'msado60.dll', vâng tôi nhận được biểu tượng bên ngoài trên' LNK2001: biểu tượng bên ngoài chưa được giải quyết "công khai: virtual long __stdcall CTProcessus :: Init (class ATL :: CStringT>>, wchar_t *, wchar_t *, wchar_t *) "' –

+2

Bạn không bao gồm các tệp DLL, bạn bao gồm các tệp tiêu đề. – juanchopanza

Trả lời

10

Trình biên dịch không thể xác định vị trí khai báo ADODB. Đảm bảo bạn bao gồm tiêu đề có liên quan trong đơn vị dịch mà trình biên dịch phàn nàn.

+0

Tôi nghĩ rằng tôi đã bao gồm chính xác 'msado60.dll ' –

+1

Trình biên dịch đã không có gì để làm với DLLs mà đến ở một giai đoạn sau này. Điều này là nhiều hơn ở giai đoạn tạo mã nơi trình biên dịch cần xác minh loại bạn đang cố gắng sử dụng. Nên có một tiêu đề mà kiểu 'ADODB' được giới thiệu. Hãy chắc chắn rằng nó được đưa vào tệp nguồn mà bạn đang cố gắng biên dịch. – legends2k

Các vấn đề liên quan