Экспорт функций 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 класс...