Guten tag liebe com,
ich versuche derzeit über die Registy den Proxy zu deaktivieren, bzw.
aktivieren.
Laut der Registry hat der Wert den Typ Reg_DWORD.
Also habe ich auch verusuch mit DWORD ein Wert zu ändern:
Jedoch wird dann in der Registry der Wert als unbekannter DWORD Typ
angezeigt. Ich denke ja mal das ich irgendwas falsch mache und das BYTE*
dort wahrscheinlich garnicht hingehört, aber wenn dort direkt ein DWORD
Wert reinschreibe, wir das ganze erst garnicht Compiliert. Dort kommt
dann die Fehlermeldung das der Typ nicht in const char konvertiert
werden kann...
lg, repac3r
Peter II schrieb:>> (BYTE*)"0x00000000",>> was soll das auch darstellen?
Den Wert den ich in die Regstry schreiben möchte, genau dort ist ja mein
Problem, das da ein ungültiger Wert kommt.
Marcel Hoffmann schrieb:> Peter II schrieb:>>> (BYTE*)"0x00000000",>>>> was soll das auch darstellen?> Den Wert den ich in die Regstry schreiben möchte, genau dort ist ja mein> Problem, das da ein ungültiger Wert kommt.
dann denke doch mal nach, Warum sollte man überhaupt einen DWORD wert
als STRING übergeben und dann auf eine Byte array casten.
auch die nächste Parameter ist Unsinn.
Warum übergibst du nicht einfach die zahl als zahl?
Leider funktioniert dies auch nicht dort wird mir schon beim definieren
der Variable byte, des Fehleer angezeigt, dass sich const char[10] nicht
in DWORD konvertieren lässt.
Marcel Hoffmann schrieb:> DWORD byte = "0x0000001";
fange doch erstmal an C oder C++ zu lernen bevor du in der Registry
arbeitest.
Was soll diese Zeile deiner Meinung nach darstellen?
Peter II schrieb:> Marcel Hoffmann schrieb:>> DWORD byte = "0x0000001";>> fange doch erstmal an C oder C++ zu lernen bevor du in der Registry> arbeitest.>> Was soll diese Zeile deiner Meinung nach darstellen?
Ja den Wert die ich in der Registry schreiben möchte, habe ich ja oben
schon beschrieben.
Marcel Hoffmann schrieb:> Habe das ganze mal ein bisschen abgeändert:> DWORD byte = "0x0000001";
EIn DWORD ist auch nichts anderes als eine Zahl.
Also weiß doch den ganzen eine Zahl zu und KEINEN String!
Wo ist denn das Problem bei
DWORD byte = 5;
oder
DWORD byte = 8;
oder eben von mir aus
DOWRD byte = 0x00000001;
Eben. Es gibt kein Problem. Zahl ist Zahl. Ob du die als Dezimalzahl
schreibts, oder als Oktalzahl oder eben als Hexadezimalzahl spielt doch
keine Rolle. Es ist eine Zahl.
Aber ein String ist KEINE Zahl! Ein String ist in erster Linie Text. Und
der Text kann genausogut "Otto" lauten, wie er auch "0x00000001" lauten
kann. Aber nur weil dich letzterer String an eine Zahl errinnert, macht
das den String noch lange nicht zur Zahl.
Oder schreibst du
Marcel Hoffmann schrieb:> DWORD byte = "0x0000001";
Von den anderen Dingen mal abgesehen:
Du definierst eine Variable vom Typ DWORD, nennst sie byte und versuchst
ihr dann, einen String zuzuweisen. Ersteres ist syntaktisch okay, aber
doch eher verwirrend, gerade wenn man nicht so wirklich weiß, was man
eigentlich tut. Zweiteres wurde ja schon behandelt.
<nitpick>
Auch wenn dein Code sich der Untermenge von C bedient, die auch legales
C++ ist und sich insofern abgesehen von den deplazierten
String-Literalen als C++ compilieren lassen sollte, ist das eigentlich
C. Ist völlig legitim, aber falls du C++ lernen möchtest, dann benutze
besser von Anfang an die entsprechenden Casts etc. Dann beschäftigst du
dich automatisch mehr damit, was die verschiedenen Typen eigentlich sind
und was du da eigentlich zwischen diesen Typen wie umwandelst und warum.
- Auch wenn die WinAPI einem auf dem Weg zur sauberen Typisierung jede
Menge Steine in den Weg legt ;)
</nitpick>