2013-08-22 1 views
0

C++에서 클래스를 작성 중입니다. 여기 내 코드입니다 : Unhandled exception at at 0x75C9C41F in AccessReader.exe: Microsoft C++ exception: _com_error at memory location 0x003AF808.ADODB :: _ RecordsetPtr 개체를 멤버 데이터로 사용할 수 있습니까?

ADODB::_ConnectionPtr 객체가 복사 가능한하지 않기 때문에인가 : 나는 pConn에 임시 ADODB::_ConnectionPtr 객체를 할당 할 때

class MyClass 
{ 
private: 
    ADODB::_RecordsetPtr pConn; 
public: 
    MyClass(); 
}; 

MyClass::MyClass() 
{ 
    pConn = ADODB::_ConnectionPtr("ADODB.Connection"); 
    // ...... 
} 

문제는이 컴파일러는 예외를 throw?

이 문제를 어떻게 해결할 수 있습니까?

미리 감사드립니다.

+0

. 그렇게하지 않으면 무엇이 잘못되었는지를 알려주지 않는 미처리 된 C++ 예외가 생성됩니다. –

답변

1

코드에 따르면 _RecordsetPtr_ConnectionPtr으로 설정합니다.

당신이 CoInitialize 또는 CoInitializeEx 불렀다 :

여기에 확인하는 무엇입니까?

봅니다 예외를 catch하고 불평 있는지 확인합니다 : 당신이 당신이 *해야 *이 기본 COM 방법이 실패 할 때 발생하는 _com_error 예외를 처리하는 스마트 포인터 래퍼 형식을 사용하는 경우

catch (_com_error &e) { 
    std::cerr << e.Description() << std::endl 
}