PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Funktion aus C# aufrufen


Gast
2015-01-25, 19:16:14
Hallo,
habe ein kleines Problem, ich versuche C++ Funktionen aus C# aufzurufen, da das nicht so ohne weiteres geht, habe ich eine C++ CLI Schicht dazwischen.

Nun habe ich aber Probleme bei der Parameterübergabe.

Meine C-Funktion sieht so aus und soll mir eben diesen String zurückgeben.

void Funktion(char[30] teststring);

wie muss ich dann meine C++ CLI Funktion deklarieren, die von C# aufgerufen wird?


void _Funktion(string^% test)
{

Funktion(test);
}

als auch
void _Funktion(string^% test)
{
string s;
Funktion(s);

test = s;
}


bringt dann beim aufruf direkt eine native operation exception ..


Wäre für Hilfe dankbar.

minos5000
2015-01-26, 09:23:04
Die C++ Funktion muss exporiert werden. Und die DLL dann im C# Projekt einbinden.

Lies dir das mal durch: https://msdn.microsoft.com/de-de/library/cc431203.aspx

Coda
2015-01-26, 10:29:42
Oder C++/CLI

FlashBFE
2015-01-26, 12:04:52
Ich stand auch schon vor diesen Problemen und habe von C++/CLI wieder Abstand genommen, weil das wieder eine eigene Programmiersprache ist, die man in ihren Details noch zusätzlich beherrschen muss.

Ich behelfe mir lieber damit, in C++ Wrapper auf Standard-C zu schreiben, was man dann in alle anderen Sprachen importieren kann. Mit Funktionen in Standard-C verliert man zwar die Objektorientierung, aber ich finde das trotzdem die weitaus elegantere und fehlerärmere Lösung, als noch einen C++/CLI Verhau dazwischen zu schalten.