PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aus Java/C# auf C zurückgreifen?


Gast
2008-05-22, 17:37:13
Hallo,

ich habe in C den Ansatz eines Spieletrainers geschrieben (für San Andreas), soll heißen, das Programm findet die richtigen Speicheradressen raus und kann eigene Werte eintragen. Was fehlt ist ein GUI - das tu ich mir in C jedoch nicht an.

Eigentlich komm ich aus der Java/C# Ecke, hätte alles darin geschrieben, nur fremde Speicherbereiche ansprechen sind in beiden Sprachen ja eher tabu.
Was ich nun vorhabe, ist eine Winforms (o.ä.) Anwendung zu schreiben, welche die grafische Oberfläche zur Interaktion darstellt, das C-Programm führt dann im Hintergrund die passenden Operationen aus.

Wie mache ich das am elegantesten? Habe schon oft davon gelesen, dass man in Java oder C# performancekritische Sachen in C/C++ auslagern kann, also muss es ja auch hier gehen.

Hätte erstmal die Idee gehabt, dass das C-Programm mit verschiedenen Parametern gestartet werden kann (a la "bla.exe -give_money") und das GUI die gewünschten Sachen dann als Parameter übergibt.

Aber das geht sicherlich besser?


Danke

Gast
2008-05-22, 17:48:01
Hätte erstmal die Idee gehabt, dass das C-Programm mit verschiedenen Parametern gestartet werden kann (a la "bla.exe -give_money") und das GUI die gewünschten Sachen dann als Parameter übergibt.

Aber das geht sicherlich besser?
Warum nicht so? Das ist wohl so ziemlich der einfachste und eleganteste Ansatz.

Trap
2008-05-22, 17:58:36
Wenn man den C-Teil als externes Programm startet, hat man für jede Aktion ziemlich viel Overhead, dafür ist es sehr einfach und flexibel nutzbar.

Die Alternative dazu wär JNI oder JNA bei Java. Bei .NET P/Invoke.

Für einen Trainer würd ich die "externes Programm"-Variante bevorzugen.

Grestorn
2008-05-22, 18:13:25
Warum nicht so? Das ist wohl so ziemlich der einfachste und eleganteste Ansatz.

Elegant ist das sicher nicht.

TS:
Kompilier Dein C-Programm als DLL. Die kannst Du aus C# sehr leicht aufrufen.

Mit Java musst du dann JNI bemühen, was auch geht, wenn auch etwas mühsamer.

Monger
2008-05-22, 18:32:14
TS:
Kompilier Dein C-Programm als DLL. Die kannst Du aus C# sehr leicht aufrufen.


Das wäre auch mein Tipp gewesen. Das C-Programm als COM-Bibliothek kompilieren, die dann in .NET reinziehen - fertig.

Theoretisch könnte man wohl auch den Code in C++/CLI irgendwie in .NET reinmatschen, aber was dabei rauskommt, ist sicherlich unschön.

Coda
2008-05-22, 18:47:01
Ich würde nicht sagen, dass das unschön ist. Ein C++/CLI-Wrapper um eine C-Library erschlägt gleichzeitig das man einen OOP-Wrapper dafür hat und das man es auf .NET bekommt.

Gast
2008-05-22, 19:48:37
Das schlimmste ist diese HTML/CSS Grütze. Man hätte niemals dem W3C eine Bedeutung beimessen sollen. Die erhalten doch diesen Müll künztlich am Leben. Am besten wäre, dass die Web Browser zukünftig nur noch alle notwendigen Plug-ins für die herstellerspezifischen Technologien wie WPF/E oder die entsprechenden Konkurrenztechnologien haben. Dann verlieren die Webbrowser auch selbst an Bedeutung. So wird es auch letztendlich kommen, finde ich gut so.

Gast
2008-05-22, 19:49:08
^^ Oh, im falschen Thread gepostet...