مشاكل مع #استيراد .صافي الخروج من بروك الخادم
سؤال
في C++ برنامج أنا أحاول #استيراد TLB من .صافي الخروج من بروك الخادم.
أحصل على أخطاء مثل:
z:\server.tlh(111) :خطأ C2146:خطأ في بناء الجملة :مفقودة ';' قبل معرف 'GetType'
z:\server.tlh(111) :خطأ C2501:'_TypePtr' :في عداد المفقودين التخزين فئة أو نوع محددات
z:\server.tli(74) :خطأ C2143:خطأ في بناء الجملة :مفقودة ';' قبل 'الوسم: id'
z:\server.tli(74) :خطأ C2433:'_TypePtr' :inline لا يجوز على الإعلانات البيانات
z:\server.tli(74) :خطأ C2501:'_TypePtr' :في عداد المفقودين التخزين فئة أو نوع محددات
z:\server.tli(74) :خطأ فادح C1004:نهاية غير متوقعة من العثور على الملف
على TLH تبدو مثل:
_bstr_t GetToString();
VARIANT_BOOL Equals (const _variant_t & obj);
long GetHashCode();
_TypePtr GetType();
long Open();
أنا لست مهتما حقا في وجود قاعدة الكائن .صافي أساليب الكائن مثل GetType () يساوي () ، الخ.ولكن GetType() ويبدو أن تسبب مشاكل.
بعض google تشير الأبحاث إلى يمكنني #import mscorlib.tlb
(أو وضعه في مسار), ولكن لا أستطيع أن تجمع أيضا.
أي نصائح ؟
المحلول 3
وأضاف no_namespace و raw_interfaces_only إلى بلدي #الاستيراد:
#import "server.tlb" no_namespace named_guids
أيضا باستخدام TLBEXP.EXE بدلا من REGASM.EXE يبدو أن تساعد في هذه المسألة.
نصائح أخرى
#import "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb" was the solution for me.
أكثر ofenly, عندما مقابل الالتزام com المصدر إلى tlb في تلميح مثل هذا:// #import "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb" فهذه إضافة هذا StdAfx.ساعة قبل #inport youOwn.tlb the basice المنشأة مثل _Type, _ObjRef وأضاف في مشروع بروتو نوع
أعتقد أنه سوف يحل لك المشكلة.
ولكن المشكلة الأكبر هي :بعد كل شيء القيام به ، أن يكون هناك بعض أخطاء وقت التشغيل عند استدعاء Ptr في البرنامج
أي شخص يمكن أن تساعد ؟
أيضا, تأكد من الفئة C# لا يملك هذه السمة:
[ClassInterface(ClassInterfaceType.AutoDual)] <-- يبدو أن يسبب أخطاء في C++ مع _TypePtr