Gast
#4989543
Hallo, eine bestehende Anwendung in C soll in C# konvertiert werden. Wie setzt man den folgenden C Code in C# um?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
|
Anzeige
|
C Code in C# Code konvertieren
Gast
#4989543
Hallo, eine bestehende Anwendung in C soll in C# konvertiert werden. Wie setzt man den folgenden C Code in C# um?
Gast
#4989549
Techniker schrieb: > Wie setzt > man den folgenden C Code in C# um? gar nicht. Es ist überhaupt keine code da den man umsetzen müsste. Das sind nur ein paar typedef die man so in C# nicht verwendet. Wichtig ist der code der die typedef verwendet.
Gast
#4989552
Indem man aus Structs Klassen macht. Im Unterricht gepennt und jetzt brauchst du die Hausaufgabe? Wenn Du willst, dass es POD-structs sind, die auch so verarbeitet werden reicht es nicht aus wenn Du aus:
einfach folgendes machst:
Das muss dann sowas in der Art werden:
Gast
#4989572
Chris F. schrieb: > Das muss dann sowas in der Art werden: was aber nicht sehr sinnvoll ist. Man sollte keine 1:1 Umsetzung von dem Code machen. In C# Programmiert man etwas anders als in C. Peter II schrieb: > Chris F. schrieb: >> Das muss dann sowas in der Art werden: > > was aber nicht sehr sinnvoll ist. Man sollte keine 1:1 Umsetzung von dem > Code machen. In C# Programmiert man etwas anders als in C. Dann ist ja alles in Ordnung, da der TO nicht gefragt hatte ob meine Version der 1:1 Umsetzung sinnvoll ist, sondern wie diese aussieht. Er hatte auch nicht gefragt ob Code der Typdefinitionen einsetzt wichtiger ist als die Typdefinitionen selber (die auch Programmcode sind): Danke, dass Du das nochmal bestätigt hast. :-)
Gast
#4989619
Ok vielen Dank für eure Beiträge.
Gast
#4989966
Techniker schrieb: > C Code in C# Code konvertieren Wie kommt man auf so eine wahnsinnige Idee???
Gast
#4989974
Chris F. schrieb: > Dann ist ja alles in Ordnung, da der TO nicht gefragt hatte ob meine > Version der 1:1 Umsetzung sinnvoll ist, sondern wie diese aussieht. Nö, er hat gesagt/behauptet daß eine komplette Anwendung portiert werden soll. Sowas macht man NIE 1:1 sondern portiert sinnvoll. Allenfalls schreibt man einen Konverter der das 1:1 übersetzt, aber der entstehende Code ist dann unwartbar. Horst schrieb: > Wie kommt man auf so eine wahnsinnige Idee??? Entweder geht man von der völlig irrigen Annahme aus, dass durch die rein formale Konvertierung von einer Programmiersprache in eine andere aus einer sperrigen textbasierten Anwendung plötzlich eine bunte, schöne Klickibunti-App werde. Oder man kennt tatsächlich die möglichen Einschränkungen und muss tatsächlich recht isolierten Code, der z.B. bestimmte Berechnungen durchführt, übersetzen, was durchaus sinnvoll sein kann. In der Praxis stellt man dann aber fast immer sehr schnell fest, dass irgendwelche internen Datenstrukturen oder Besonderheiten einer Programmiersprache doch nicht so trivial zu übersetzen sind und größere Konzeptänderungen bedeuten. Und viel später stellt man dann fest, dass die Neuerstellung doch einfacher gewesen wäre. Ich selbst hatte zu Beginn meines Studiums auch in grenzenloser Naivität angenommen, dass sich eine größere Sammlung von Rechenprogrammen, die in ALGOL 68 für eine DEC-10 geschrieben waren, mit ein bisschen lex und yacc in PASCAL für VAX/VMS und Turbo Pascal konvertieren ließen. Keines dieser Programme wurde jemals fertig.
Gast
#4989991
Es gibt sehr wohl struct auch in c#: https://msdn.microsoft.com/de-de/library/ah19swz4.aspx Gruß J Sofern diese C-Strukturen Dinge wie z.B. den Inhalt von Dateien* beschrieben und mit einfachen Dateioperationen als Block gelesen werden, wird eine Umsetzung auf das, was C# anstelle von Strukturen bietet, sehr interessante Nebeneffekte mit sich bringen, die mit hoher Wahrscheinlichkeit recht gründlich dafür sorgen, daß sich das "umgesetzte" Programm zu funktionieren weigert. *) oder seriell übertragene Daten, oder per Netzwerk übertragene Daten, oder Daten, die als Blob aus einer Datenbank kommen, oder welchen, die in einem (E)EPROM gespeichert sind ... der Möglichkeiten sind viele. Rufus Τ. F. schrieb: > was C# anstelle von Strukturen bietet, sehr > interessante Nebeneffekte Daher macht es auch Sinn hier die POD-Strukte 1:1 nachzubauen. Es geht offensichtlich um statische Protokollstrukturen die zur externen Übergabe an andere Prozesse gedacht sind. struct ist in C++ ein class mit "default public", dort muss man schon mit byte-alignment aufpassen, ist aber noch gut dabei, da nativer Code generiert wird. Ein C++-Compiler wird quasi immer Objektcode generieren der die Daten einer Instanz einer Klasse in der selben Reihenfolge wie deklariert speichert. In C# kommt die volldynamische Speicherverwaltung der .net-runtime-vm dazu.
Gast
#4990453
Chris F. schrieb: > Daher macht es auch Sinn hier die POD-Strukte 1:1 nachzubauen. Es geht > offensichtlich um statische Protokollstrukturen die zur externen > Übergabe an andere Prozesse gedacht sind. es macht für mich eigentlich NIE sinn, so etwas nachzubauen weder unter C noch unter C#. Man macht jeweils Methoden die die interne Repräsentation und den Datenstrom konvertieren. Damit kann man auch optionale Felder im Protokoll abbilden. Und es gibt keine Probleme wenn sich das Protokoll ändert. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|