AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RegQueryValueEx -> dataType ?!

Ein Thema von S - tefano · begonnen am 30. Mär 2004 · letzter Beitrag vom 30. Mär 2004
Antwort Antwort
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, 11: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
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: RegQueryValueEx -> dataType ?!

  Alt 30. Mär 2004, 19:26
Moin Stefano,

also ich hab' in dem Sourcecode auch einfach mal eine Variable (Typ DWORD, mit @ für die Adresse) für den Typ übergeben, und das klappt Problemlos.
Hast Du die Adresse auch als 4. Parameter übergeben?
Der 3. muss nil sein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

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

Re: RegQueryValueEx -> dataType ?!

  Alt 30. Mär 2004, 20:28
Heieieieieiei, ich hab den Fehler.
In der Win32- Hilfe stand bei dem Typ des Parameters was von PDWORD, das habe ich dann auch so übernommen.
Mit dem "@" das hatte ich auch, aber abgestürzt ist es trotzdem.
Jetzt habe ich den Parameter als DWORD genommen, es klappt!

Danke für die Hilfe,

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz