Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » hex byte string zu charstring umwandeln

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]
000
22.12.2004, 14:50 Uhr
~NightHawk
Gast



Code:

15 01 02(command für msg) 77 77 77 2e 31 31 31 2e 64 65(text) 00 00 00(abschliesen von der msg)
rum hier!
hab gleich mal danach druchsucht, aber leider nichts gefunden!
hier mal ein kleiner ausschnitt aus meinem proggi.
das ist ne dll für ein bestimmtes game!
in dem game bekomm ich packets die so aussehen:
wenn ich zb."www.111.de" schreibe|CODE2||
das mein programm das check, dass dieses "packet/bytes davon" received sind,gibt es diese funktion:

C++:
BYTE text[20] = {0x00,0x00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
DWORD EXPORT OnGamePacketBeforeSent(BYTE* aPacket, DWORD aLen)
{if ((aPacket[3] == 0x77) &&(aPacket[4] == 0x77)&&(aPacket[5] == 0x77))
{memcpy(text+0,aPacket+2,20);
/*das memcpy kopiert ab dem 2ten byte, alle 20 danach folgenden bytes in das oben definierte byte "text" ab dem 0ten byte rein!*/}
return aLen;}


hoffe ihr versteht das ganze bis dahin ein bisschen
jetzt habe ich das byte in dem string "text" als byte und nicht als char!!

wie kann ich jedes einzelne byte zu einem buchstaben umwandeln(77 wäre zb dann w)
und das in einen char string speichern, das sich dies später so benutzten kann:

C++:
ShellExecute(0,"open","IEXPLORE.exe",text,0,SW_SHOWNORMAL);


wenns zu schwierig ist oder zu viel zeit anspricht, müsst ihr mir nicht helfen, ich will euch die freizeit nicht verderben!
trotzdem schonmal danke im vorraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.12.2004, 15:34 Uhr
enno-tyrant
Frag nicht!


um dein beispiel mit dem w fortzusetzen:

Code:
char c = 0x77;
string s;
s = c;
cout << s;



gib der char-variablen 'c' den ascii-wert in hex, dann schreibe dem string 's' der char-variablen zu.

schon hast du deinen hex-wert als string.

der char-variablen interressiert nicht ob du ihr einen int-wert gibst, sie versucht immer ein zeichen daraus zu machen
--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.12.2004, 16:51 Uhr
~NightHawk
Gast


vielen vielen dank!!
aba.. jetzt ist ein anderes problem aufgetreten:
zusammensetzten mit sprintf geht ja easy...

C++:
byte tele[2] = {0x77,0x32};
char c = 0x77;char d = 0x31;char s[100];
sprintf(s,"%c%c%c",c,d,tele);
cout<<s<<endl;


aber herausmeiseln aus den geschweiften klammern sieht für mich unmöglich aus!
sollte ich vll nicht mit memcpy kopieren?
gruß, nighthawk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.12.2004, 17:13 Uhr
Oliver
S2-Pixelgeneral



Zitat:

jetzt habe ich das byte in dem string "text" als byte und nicht als char!!




C++:
// windef.h
typedef unsigned char       BYTE;



Das ist ein und dasselbe.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.12.2004, 17:22 Uhr
~NightHawk
Gast


habs gerade auch mitbekommen, das es wurscht ist ob byte oder char.. aba wie kann ich die einzelnen sachen da rauspicken aus den geschweiften klammern?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.12.2004, 17:30 Uhr
Oliver
S2-Pixelgeneral


Hmm, ich versteh jetzt nicht so richtig, was du machen willst. Wieso machst du ein Array mit 2 "Bytes" und schreibst dann nur das Erste in den String?
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.12.2004, 17:33 Uhr
enno-tyrant
Frag nicht!



Code:
byte tele[2] = {0x77,0x32};



array anzeigen lassen:

Code:
cout << tele[0] << tele[1] << tele[2];



mit den einzelnen bytes weiterarbeiten:

Code:
char var1 = tele[0];
char var2 = tele[1];
char var3 = tele[2];



problem gelöst?
--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.12.2004, 17:36 Uhr
enno-tyrant
Frag nicht!


für deinen fall dann wohl so:


Code:
byte tele[1] = {0x77,0x32};
char c = tele[0];
char d = tele[1];
char s[100];
sprintf(s,"%c%c%c",c,d,tele);
cout<<s<<endl;


--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.12.2004, 17:39 Uhr
enno-tyrant
Frag nicht!


obwohl ich nicht weiß warum du die bytes 2x kopieren wilst:

Code:
sprintf(s,"%c%c%c",c,d,tele);



dann lieber so
Code:
sprintf(s,"%c%c%c",c,d);

--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
22.12.2004, 18:07 Uhr
~NightHawk
Gast


damn holy, das geht!!!
hätt ich nie erwarten, dass ich so schnell hilfe finden kann!
riesen dank!!!
@oli:
ich MUSS die packets die vom game kommen in solchen arrys speichern um sie dann "weiterzuverarbeiten", sprich weitersenden oder die bytes einzelnd rausmeiseln
gruß, th3 NightHawk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: