Экспорт функций C++ внутри приложения C#

Приветствую, прошу прощения за беспокойство, покажу вопрос

Я пытаюсь экспортировать некоторые функции, написанные на C++, в DLL, чтобы импортировать их в приложение C#, работающее в Visual Studio. Я делаю экспорт, как указано в следующем коде,

tobeexported.h:

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

                };
}

tobeexported.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 найдена, но когда я ее открываю в браузере объектов он полностью пуст, ни класс, ни объект не были экспортированы и готовы к использованию

не могли бы вы мне помочь, пожалуйста? спасибо с наилучшими пожеланиями

1 ответ

Решение

Как насчет использования управляемого C++ для компиляции вашей DLL? Тогда вам просто нужно добавить ссылку на класс следующим образом:

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

                };
}

После успешной компиляции и ссылки в другом проекте класс должен быть видимым. Экспорт нативного C++ на самом деле не переносим, ​​каждый компилятор дает разные результаты и его сложно связать изнутри C#...

РЕДАКТИРОВАТЬ: добавлен модификатор публичного доступа в ref класс...

Другие вопросы по тегам