000
17.05.2011, 01:08 Uhr
CosmoCortney
|
Hallo, habe vor einigen Tagen mit dem Programmieren mit Visual Studio C++ Express angefangen und mit Hilfe des Buches "Visual C++ 2010 - Der schnelle und einfache Einstieg in ie Windows-Programmierung". Bin also noch Anfänger.. Nachdem ich die ersten drei Kapitel des Buches durchgearbeitet habe, wollte ich mal ein komplett selbstentworfenes Programm schreiben, da ich schon fast alles was ich für das Programm brauche in diesem Buch gelernt habe. Allerdings steht nichts in dem Buch von dem Berechnen von Hexadezimalzahlen. Also habe ich trotzdem mal angefangen das Programm zu erstellen. Sprachauswahl funktioniert einwandfrei an dem Programm (benutze das Programm nur für mich selbst, habe nur aus Interesse die Sprachauswahl mit eingebaut). Muss nur eine Kleinigkeit wissen, um den Rest schreiben zu können.
Also: Zuerst solltet Ihr wissen, was das Programm genau machen soll, um sich vielleicht leichter ein Bild davon machen zu können. Das Programm soll bestimmte Hexadezimalcodes, so wie diese, die man vorfindet wenn man den RAM einer Spielekonsole oder eines Computers scannt. Diese Codes haben wie z.B. bei Nintendo GameCube oder Wii eine 32bit-Adresse und dahinter einen 32bit-Code (jeweils angegeben in 8 Hexadezimalstellen).
Die Adresse eines Codes soll in die oben-links plazierte textBox (textBox1) eingetragen werden, und in die danebenstehende textBox (textBox2) kommt der eigendliche Code. Unter textBox1 kommt eine weitere textBox (textBox3) wo eine Art Ausgleichswert (Offset) (auch in Hexadezimal) für die Adresse eingegeben wird. Das selbe auch mit textBox4, die rechts neben textBox3 und unter textbox2 plaziert ist. In diese textBox wird wenn nötig (ich bezeichne es mal) "Subadresse" eingetragen, da sich dort die ersten vier Hexadezimalstellen befindet und sich auch wie Adressen verhalten (aber nicht immer befinden sich dort "Subadressen"). unter den textBoxen befindet sich eine weitere textBox (textBox6), in der die Zahl eingetragen wird, wie viele neue Codes in textBox5 ausgegeben werden sollen. Das Ergebnis in textBox5 sollte dann so aussehen (Beispielcode: 08A7E561 03F44133 , Offset: 00000100 00000000, 5 Codes + Ursprungscode sollen gezählt werden) :
08A7E661 03F44133 08A7E761 03F44133 08A7E861 03F44133 08A7E961 03F44133 08A7EA61 03F44133 08A7EB61 03F44133
Wenn ich aber einen Code und den gewünschten Offset-Wert eingebe, bekomme ich Dezimalwerte raus. Der Quellcode (für die Addition) sieht nach etwa 6 Stunden langen Tüfteln und nachdem ich im Internet etwas nachgeforscht habe so aus:
String ^str1 = textBox1->Text; int i1 = int::Parse(str1->Substring(0),System::Globalization::NumberStyles::AllowHexSpecifier);
String ^str2 = textBox2->Text; int i2 = int::Parse(str2->Substring(0),System::Globalization::NumberStyles::AllowHexSpecifier);
String ^str3 = textBox3->Text; int i3 = int::Parse(str3->Substring(0),System::Globalization::NumberStyles::AllowHexSpecifier);
String ^str4 = textBox4->Text; int i4 = int::Parse(str4->Substring(0),System::Globalization::NumberStyles::AllowHexSpecifier);
int i5 = i1 + i3; int i6 = i2 + i4; textBox5->Text = i5 + " " + i6; // + " " soll die Lücke zwischen Adresse und Code einfügen }
Ich müsste lediglich nur wissen, wie die Ausgabe in textBox5 in Hexadezimal angegeben werden kann. Brauche das Programm echt dringend, da ich anschließend nicht mehr die Codes von Hand tippen muss und auch vom Windows Rechner unabhängig bin (ein kompletter code hat oft über 30 Zeilen)..
Danke schonmal im Voraus |