وظائف التصدير C ++ داخل تطبيق C#
-
21-09-2019 - |
سؤال
تحياتي ، أنا آسف على الإزعاج ، سأظهر السؤال:
أحاول تصدير بعض الوظائف المكتوبة في 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#...
تحرير: إضافة معدل الوصول العام إلى فئة المرجع ...