Экспорт функций c ++ внутри приложения C #
-
21-09-2019 - |
Вопрос
Приветствия, Прошу прощения за беспокойство, я покажу вопрос:
Я пытаюсь экспортировать некоторые функции, написанные на c ++, в DLL, чтобы импортировать их в приложение C #, работающее в Visual Studio.Я выполняю экспорт, как указано в следующем коде,
быть экспортированным.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 (просматривается с помощью программного обеспечения для дизассемблирования (reflector)) и содержит экспортированные функции затем я "Добавляю ссылку" в свое приложение на c #, и dll найдена, но когда Я открываю его с помощью object browser, он полностью пуст, ни класс, ни объект не были экспортированы и готовы к использованию
не могли бы вы мне помочь, пожалуйста?спасибо с наилучшими пожеланиями
Решение
Как насчет использования управляемого C ++ для компиляции вашей DLL?Затем вам просто нужно добавить ссылку на класс следующим образом:
namespace SOMENAMESPACE
{
public ref class SOMECLASS
{
public:
SOMETYPE func(param A,char b[tot]);
};
}
После успешной компиляции и создания ссылок в другом проекте класс должен быть видимым.Экспорт собственного C ++ на самом деле не переносим, каждый компилятор выдает разные результаты, и привязка изнутри C # утомительна...
Редактировать:добавлен модификатор публичного доступа к классу ref...