Вопрос

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

Я пытаюсь экспортировать некоторые функции, написанные на 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...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top