BYTE zu eimem String Konvertieren
-
c.rackwitz schrieb:
du hast borland (IDE/compiler) spezifische probleme.
Das stimmt ja gar nicht. Das Problem ist die Bewältigung eines casts von BYTE (in Win32 unsigned char) nach char.
#include <iostream> using namespace std; int main() { unsigned char a[] = "hallo"; char *b = reinterpret_cast<char*>(a); cout << b << endl; cin.get(); }
-
allgemeines problem schrieb:
Das Problem ist die Bewältigung eines casts von BYTE (in Win32 unsigned char) nach char.
bzw. von Zeigern auf die jeweiligen Typen.
-
oder so:
DWORD dw1Data = 256; char c1Daten[256]; RegOpenKey(HKEY_CURRENT_USER, "Test\\TestPlan" , &hKey); // hKey wird geöffnet RegQueryValueEx(hKey,"Edi_Pfad",0,0,(LPBYTE)c1Daten,&dw1Data); // Schlüssel wird gelesen E_Edi_Pfad->Text = c1Daten; // sollte gehen... RegCloseKey(hKey);
-
er sagte ANSISTRING, also ist das borland-spezifisch.
-
HI
und was ich davon.
ist dann b mein String oder was.
könnt ihr das vielleicht in mein bsp einbauen so das ich das auch verstehe
was zu was gehört.wäre euch sehr dankbar.
mfg
Tarantel
-
b ist kein AnsiString, aber char * kann er in AnsiString umwandeln, deshalb kannst du diesen Wert deinem Textfeld zuweisen.
-
AnsiString ist borland-spezifisch, aber ich vermute (habe nämlich keinen cpp-builder), dass man einem AnsiString ebenso wie einem std::string einen Zeiger auf char zuweisen kann.
#include <iostream> #include <string> using namespace std; int main() { unsigned char a[] = "hallo"; string b = reinterpret_cast<char*>(a); // ja, b soll die AnsiString Variable sein (vermutlich E_Edi_Pfad->Text) cout << b << endl; cin.get(); }
-
Hi
habe so lange zum antworten gebracuht deswegen habe ich nicht jeden beitrag lesen können vor dem posten
Danke @ all
das geht wenn ich einfach aus dem BYTE ein char mache dann kann ich es sogar nachher in ein Edit Feld schreien. Und bekomme kleine speicher Probeme
DWORD dw1Data = 256; char c1Daten[256] =""; RegOpenKey(HKEY_CURRENT_USER, "Test\\TestPlan" , &hKey); RegQueryValueEx(hKey,"Edi_Pfad",0,0,c1Daten,&dw1Data); E_Edi_Pfad->Text = c1Daten; RegCloseKey(hKey);Danke @ all
mfg Tarantel

-
Hallo
übrigens : wenn du schon mit der VCL arbeitest, kannst du ja auch gleich die VCL-Klasse TRegistry zum Zugriff auf die Registry benutzen. Dazu steht einiges in der BCB-Hilfe und hier im BCB-Forum. Dann kannst du AnsiString auch ohne Konvertierung direkt benutzen.
bis bald
akari
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.