Проблема компиляции в Borland Dev Studio 2006 Turbo C ++ Explorer [закрыто]
-
08-07-2019 - |
Вопрос
Всем привет
Я новичок в 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;
};
Пара предложений из другого источника:
<Ол>Как говорится в сообщении об ошибке компилятора, в области действия модуля компиляции есть 2 объявления типа данных ITransaction. Похоже, определение ITransaction взято из comsvcs.h от Microsoft, и что OleDB :: ITransaction является реализацией интерфейса ITransaction от Borland. Таким образом, вы можете попробовать 2 вещи:
У кого-нибудь есть другие предложения?
С уважением, Брюс.
Решение
Я понятия не имею, как сделать COM или какова ваша ITransaction, но мне кажется, что ваша сфера содержит два типа ITransaction. Можете ли вы быть более явным в своем прототипе функции? Можете ли вы охватить ту транзакцию, которую хотите использовать? Скажите ":: ITransaction" (для использования глобального пространства имен) или "some_other_namespace :: ITransaction"?
Другие советы
Хорошо, нам нужно как-то закрыть этот вопрос. После обновления Turbo C ++ Explorer до последних исправлений проблема исчезла.
Спасибо всем, кто предлагал предложения по пути.