Экспорт функций c ++ внутри приложения C # - PullRequest
2 голосов
/ 18 января 2010

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

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

3 голосов
/ 18 января 2010

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

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

                };
}

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

EDIT: добавлен публичный модификатор доступа к классу ref ...

...