Borland ديف Studio 2006 Turbo C++ Explorer تجميع مسألة [مغلقة]

StackOverflow https://stackoverflow.com/questions/286253

  •  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;

    };

بضعة اقتراحات من مصدر آخر:

مثل رسالة الخطأ من المترجم يروي هناك 2 إعلانات ITransaction نوع البيانات في نطاق تجميع وحدة.يبدو أن ITransaction تعريف تأتي من مايكروسوفت comsvcs.ح و أن OleDB::ITransaction هو تنفيذ ITransaction واجهة من Borland.لذلك يمكنك أن تجرب الأشياء 2:

  1. القضاء على OleDB::ITransaction الوضوح (لا أعرف Turbo C++, ولكن قد يكون هناك عنصر التعامل مع oleDB.في محاولة للتخلص من هذا.أو أنه يمكن أن تدرج باستخدام آخر #include.البحث عن النص oledb::ITransaction في الخاص بك يتضمن الدليل و سوف نأمل أن تجد الملفات ذات الصلة.تعديل تشمل مسار لذلك لا يتم تضمين أي أكثر من ذلك).
  2. هل يمكن أن تحاول تحديد CINTERFACE لأن الكود الناتج في ترجمة خطأ لن يتم إدراجها إذا كان هذا هو تعريف.ولكن هذا قد يسبب مشاكل أخرى...

هل من أحد لديه أي اقتراحات أخرى ؟

مع أطيب التحيات ، بروس.

هل كانت مفيدة؟

المحلول

ليس لدي أي فكرة عن كيفية القيام COM أو ما ITransaction ، ولكن يبدو لي مثل النطاق الخاص بك يحتوي على اثنين من ITransaction أنواع.يمكنك أن تكون أكثر وضوحا في وظيفة الخاص بك في النموذج ؟ يمكنك نطاق ITransaction تريد استخدامها ؟ يقول "::ITransaction" (استخدام مساحة العالمي) أو "some_other_namespace::ITransaction"?

نصائح أخرى

حسنا, نحن بحاجة لإغلاق هذه المسألة بطريقة أو بأخرى.بعد تحديث Turbo C++ Explorer مع أحدث تصحيحات المشكلة ذهبت بعيدا.

شكرا لجميع الذين قدموا اقتراحات على طول الطريق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top