سؤال

تحياتي ، أنا آسف على الإزعاج ، سأظهر السؤال:

أحاول تصدير بعض الوظائف المكتوبة في C ++ في DLL من أجل استيرادها في تطبيق C# الذي يعمل على Visual Studio. أقوم بإجراء التصدير كما ورد في الكود التالي ،

soebeexported.h:

namespace SOMENAMESPACE
{
                class __declspec(dllexport) SOMECLASS
                {
                               public: 
                               SOMETYPE func(param A,char b[tot]);

                };
}

soebeexported.cpp:

#include "stdafx.h"
#include "tobeexported.h"
...


using namespace SOMENAMESPACE;

SOMETYPE SOMECLASS:: func(param A,char b[tot])
                {
                               ...some stuff inside...
                }

يتم إنشاء DLL بشكل كبير ويتم إدارتها بالفعل من قبل CLR (يتم النظر إليها مع برنامج تفكيك (عاكس)) ويحتوي على الوظائف التي تم تصديرها ، ثم "أضيف المرجع" في تطبيق C# الخاص بي ويتم العثور على DLL ، ولكن عندما أفتحه مع متصفح الكائنات ، يكون فارغًا تمامًا ، ولم يتم تصدير فئة ولا كائن وجاهز للاستخدام

هل يمكنك مساعدتي من فضلك؟ شكرا وأطيب التحيات

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

المحلول

ماذا عن استخدام C ++ المدارة لتجميع DLL الخاص بك؟ ثم عليك فقط إضافة المرجع إلى الفصل مثل هذا:

namespace SOMENAMESPACE
{
                public ref class SOMECLASS
                {
                               public: 
                               SOMETYPE func(param A,char b[tot]);

                };
}

بعد التجميع الناجح والإشارة في المشروع الآخر ، يجب أن يكون الفصل مرئيًا. إن تصدير C ++ الأصلي ليس محمولًا حقًا ، حيث ينتج كل مترجم نتائج مختلفة وهو مملة للربط من داخل C#...

تحرير: إضافة معدل الوصول العام إلى فئة المرجع ...

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