كيف يمكنني استدعاء التعليمات البرمجية المدارة .NET من بلدي C رمز تمكن الامم المتحدة ++ في نظام التشغيل Windows، والعكس بالعكس؟

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

سؤال

ولدي تطبيق النقي C ++ تطويرها باستخدام VC 6.0. أود هذا التطبيق للاستفادة من مكتبة تطويرها في C #. كيف يمكنني استدعاء الأساليب في مكتبة # C من وجهة نظري قابل للتنفيذ الأصلي؟ أنا لا أريد لتحويل بلدي التي تديرها الامم المتحدة C ++ التطبيق الأصلي إلى التعليمات البرمجية المدارة. وبالمثل، كيف أفعل العكس؟ غير PInvoke الخيار الوحيد؟ وسأكون ممتنا أي إشارات أو مؤشرات لنفسه.

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

المحلول

لاستدعاء إلى التعليمات البرمجية المدارة من غير المدارة C ++، استخدم ClrCreateManagedInstance أو تصدير أنواع بك في تجميع المدارة الخاص بك كما COM مرئية، واستخدام COM. للاتصال في التعليمات البرمجية غير المدارة من المدارة، استخدام COM أو P / استدعاء.

نصائح أخرى

والخط الرئيسي مايكروسوفت على هذا هو استخدام إمكانية التشغيل المتداخل COM. بيد أن هناك خيار آخر، يشار إليها أحيانا باسم "عكس P / استدعاء" هناك بلوق وظيفة مثيرة للاهتمام <لأ href = "http://tigerang.blogspot.com/2008/09/reverse-pinvoke.html" يختلط = " نوفولو noreferrer "> هنا وبعض أكثر هنا

وبالإضافة إلى ذلك، إذا كان لديك Delphi.NET (المنحل حاليا) هذه اللغة يسمح لك تصدير أساليب ثابتة وكأنك أي وظيفة دلل ثم يمكنك الاتصال في التجمع Delphi.NET تماما مثل دلل الأصلي الطبيعي.

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