Borland Dev Studio 2006 Turbo C ++ 탐색기 컴파일 문제 [폐쇄
-
08-07-2019 - |
문제
G'day 모두
나는 C ++에 초보자이고 Borland Turbo C ++ Explorer에 더욱 그렇습니다. 방금이 컴파일 오류가 발생했습니다. 그것을 고치는 방법에 대한 단서가 있습니까?
[C++ Error] comsvcs.h(3209): E2015 Ambiguity between 'ITransaction' and 'Oledb::ITransaction'
[C++ Error] comsvcs.h(3275): E2015 Ambiguity between 'ITransaction' and 'Oledb::ITransaction'
[C++ Error] comsvcs.h(16197): E2015 Ambiguity between 'ITransaction' and 'Oledb::ITransaction'
[C++ Error] comsvcs.h(16293): E2015 Ambiguity between 'ITransaction' and 'Oledb::ITransaction'
첫 번째 코드가 발생하는 코드입니다
EXTERN_C const IID IID_ICreateWithTransactionEx;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("455ACF57-5345-11d2-99CF-00C04F797BC9")
ICreateWithTransactionEx : public IUnknown
{
public:
virtual /* [helpstring][helpcontext] */ HRESULT STDMETHODCALLTYPE CreateInstance(
/* [in] */ ITransaction *pTransaction,
/* [in] */ REFCLSID rclsid,
/* [in] */ REFIID riid,
/* [iid_is][retval][out] */ void **pObject) = 0;
};
다른 출처의 몇 가지 제안 :
컴파일러의 오류 메시지에 따르면 컴파일 장치의 범위에 Itransaction 데이터 유형의 2 개의 선언이 있습니다. Itransaction 정의는 Microsoft의 comsvcs.h에서 나오고 OLEDB :: itransaction은 Borland의 Itransaction 인터페이스를 구현 한 것 같습니다. 그래서 당신은 두 가지를 시도 할 수 있습니다.
- OLEDB :: ITRANSACTION 정의를 제거하십시오 (Turbo C ++를 알지 못하지만 OLEDB를 다루는 구성 요소가있을 수 있습니다. 이것을 제거하십시오. 또는 다른 #include를 사용하여 포함될 수 있습니다. OLEDB :: 텍스트를 검색하십시오. 포함 된 디렉토리의 Itransaction은 희망적으로 관련 파일을 찾을 수 있습니다. 더 이상 포함되지 않도록 포함 경로를 수정하십시오).
- CONTERFACE를 정의하려고 시도 할 수 있습니다. Compile 오류를 초래 한 코드가 정의 된 경우 포함되지 않으므로 Cinterface를 정의하려고 시도 할 수 있습니다. 그러나 그것은 다른 문제를 일으킬 수 있습니다 ...
다른 제안이 있습니까?
친절한 안부, 브루스.
해결책
나는 com을하는 방법이나 당신의 itransaction이 무엇인지에 대한 단서가 없지만, 당신의 범위에는 두 가지 itransaction 유형이 포함 된 것처럼 보입니다. 기능 프로토 타입에서 더 명확하게 할 수 있습니까? 사용하려는 Itransaction을 범위로 삼을 수 있습니까? ":: itransaction"(글로벌 네임 스페이스 사용) 또는 "some_other_namespace :: itransaction"이라고 말합니까?
다른 팁
좋아요, 우리는 어떻게 든이 질문을 닫아야합니다. 최신 패치로 터보 C ++ 탐색기를 업데이트 한 후 문제가 사라졌습니다.
그 과정에서 제안을 제공 한 모든 분들께 감사드립니다.
제휴하지 않습니다 StackOverflow