Frage

Grüße, Es tut mir leid für die Mühe, ich werde die Frage zeigen:

Ich versuche, einige Funktionen in C geschrieben zu exportieren ++ in einer DLL, um sie in einer C # Anwendung, die auf Visual Studio zu importieren. Ich mache den Export wie im folgenden Code berichten,

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...
                }

Die DLL wird righly erstellt und der Code ist bereits CLR-Managed (sah mit einer Auseinanderbauen Software (Reflektor)) und enthält die exportierten Funktionen  dann habe ich in meiner c # Anwendung „den Verweis hinzufügen“ und die DLL gefunden wird, aber wenn Ich öffne es mit dem Objekt-Browser sie vollständig leer ist, weder Klasse noch Objekt wurde exportiert und bereit, verwendet werden

können Sie mir bitte helfen? Vielen Dank Mit freundlichen Grüßen

War es hilfreich?

Lösung

Was über die Verwendung von Managed C ++ DLL zu kompilieren? Dazu einfach in eine ref an die Klasse wie folgt hinzufügen:

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

                };
}

Nach dem erfolgreichen Erstellung und Referenzierung in dem anderen Projekt, sollte die Klasse sichtbar sein. Exportieren native C ++ nicht wirklich tragbar ist, erzeugt jeder Compiler unterschiedliche Ergebnisse und ist mühsam zu binden aus C # ...

EDIT: hinzugefügt den Zugang der Öffentlichkeit Modifikator ref Klasse ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top