vector von struct in C# einbinden
-
Hallo
Habe folgendes C++ Programm unter VS2010 Express geschrieben:#include <vector> #include <iostream> using namespace std; struct myStruct { int a; int b; int c; }; vector<myStruct> test; int main(void) { myStruct testStruct; for(int i=0;i<=3;i++) { testStruct.a=i+10; testStruct.b=i+100; testStruct.c=i+200; test.push_back(testStruct); } test.begin(); for(int i=0;i<=3;i++) { cout << test[i].a << endl; cout << test[i].b << endl; cout << test[i].c << endl; } cin.get(); return 0; }
Mein Problem: In C# möchte ich die Werte (s. letzte for Schleife) auslesen können.
Meine Frage und zwar, was ist der richtige Ansatz wenn ich dieses C++ Programm als DLL in C# einbinden möchte?
-
Ich versteh nicht ganz, warum dll!? Willst du dieses Programm einfach nur aus C# aus starten!?
-
dot schrieb:
Ich versteh nicht ganz, warum dll!? Willst du dieses Programm einfach nur aus C# aus starten!?
Ja genau und die Ausgabe soll in C# erfolgen.
Irgendwie muss die Daten von C++ nach C# bekommen.
-
Beispiel um die Ausgabe einer Konsolenanwendung auszulesen ist unter "Hinweise":
http://msdn.microsoft.com/de-de/library/system.diagnostics.process.standardoutput(v=VS.80).aspx
(...wobei du noch was in StandardInput schreiben müsstest für cin.get()...)Als DLL: Bau halt ne C-Schnittstelle ein und nutze pinvoke.
Alternativ: COM-Objekt raus bauen....wobei sich schon die Frage aufdrängt, warum du das bisschen nicht gleich in c# machst
-
geeky schrieb:
...wobei sich schon die Frage aufdrängt, warum du das bisschen nicht gleich in c# machst
Ja das wollt ich auch grad fragen...
-
geeky schrieb:
Beispiel um die Ausgabe einer Konsolenanwendung auszulesen ist unter "Hinweise":
http://msdn.microsoft.com/de-de/library/system.diagnostics.process.standardoutput(v=VS.80).aspx
(...wobei du noch was in StandardInput schreiben müsstest für cin.get()...)Als DLL: Bau halt ne C-Schnittstelle ein und nutze pinvoke.
Alternativ: COM-Objekt raus bauen.Hallo
Wie wäre denn der Ansatz für eine C- Schnittstelle bzw. für Pinvoke?
Kennst du eine Seite oder Lehrbuch wo dies erklärt wird?geeky schrieb:
...wobei sich schon die Frage aufdrängt, warum du das bisschen nicht gleich in c# machst
Das soll nur ein Beispiel für mich werden wie man sowas machen kann.
-
Hallo,
jemand eine Idee wie der Ansatz für eine C- Schnittstelle
und Pinvoke sein könnte?
-
Du musst die von dir gewünschte Funktionalität in eine Funktion packen die die dll exportiert und die dann über P/Invoke aus C# aufrufen!?
Wie stellst du dir das sonst vor? Soll C# merken dass du da eigentlich ein eigenständiges Programm hast, es irgendwie ausführen und dann aus dem Output schließen dass du vermutlich gern diese und jene Werte hättest!?