Einzelnen Beitrag anzeigen

Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#1

RegQueryValueEx -> dataType ?!

  Alt 30. Mär 2004, 12:23
Hi,

nachdem ich es gestern hinbekommen habe, einen Schlüssel zu öffnen möchte ich ihn nun auch mal auslesen.
Nehme dafür RegQueryValueEx. Weil ich vorher nicht weiß welchen Datentyp ich auslese, will ich den lpType-Parameter benutzen um mich dann hinterher per Case anzupassen.
Allerdings gibt es da das Problem, dass mein Programm sobald es diese Aufrufreihenfolge verlässt (also mit dem Auslesen fertig ist) mit ner AV abschmiert.
Nach dem Lesen ist es auch egal ob ich ein showmessage mache oder die Methode enden lasse oder sonstwas, der Absturz kommt spätestens nach der Rückkehr in die aufrufende Ebene.
Dann habe ich hier einen Code gefunden und den mal stumpf per Copy&Paste übernommen. Das ist der von Christian Seehase, der u.a. die Methode ReadStringFromRegAPI enthält.
Bis auf ein paar stilistische Aspekte sieht meine Lese-Methode jetzt genauso aus.
Die vom C.H. funktioniert komischerweise tadellos. Mir ist aber dabei aufgefallen, dass die Methode die ich übernommen habe diesen lpType-Parameter nicht verwendet bzw. nil übergibt.
Ich will den Parameter ja benutzen, habe mir deshalb eine Variable "myType" als DWORD genommen und per @myType an die Methode übergeben.

Und das scheint der Knackpunkt zu sein:
Übergebe ich statt des Parameters einfach nil, dann funktioniert alles so wies soll, bis auf eben das mit dem Datentyp. Übergebe ich meine Variable kriege ich die AV.
Habe es nach der Leseanweisung auch schon mit FreeMem(myType) und FreeMem(myType, sizeOf(myType)) versucht, aber das bringt auch nix.

Ich versteh das einfach nicht, das kann doch nicht sein dass man diesen Parameter nicht verwenden kann ohne sein Programm in den Abgrund zu stürzen.

Danke schonmal für eure Hilfe,

S - tefano

P.S.: Hier der Link zu dem Code durch den ich meinen ersetzt hab (ihr sollt nicht denken dass ich hier alles abgekupfert habe, ich hatte tatsächlich einen eigenen Entwurf... der hats aber auch nicht getan):

Code
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat