AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein lpDependencies in QUERY_SERVICE_CONFIG
Thema durchsuchen
Ansicht
Themen-Optionen

lpDependencies in QUERY_SERVICE_CONFIG

Ein Thema von Dalai · begonnen am 16. Mär 2014 · letzter Beitrag vom 16. Mär 2014
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#1

lpDependencies in QUERY_SERVICE_CONFIG

  Alt 16. Mär 2014, 17:47
Ein freundliches Hallo in die Runde ,

leider hab ich schon wieder ein Problem. Diesmal geht's um die Deklaration der Datenstruktur QUERY_SERVICE_CONFIG. Dort gibt es lpDependencies als LPTSTR (PChar in Delphi), das laut MS null-separierte Elemente enthalten kann/soll:
Zitat:
A pointer to an array of null-separated names of services or load ordering groups that must start before this service. The array is doubly null-terminated.
Wie kommt man an die Elemente nach dem ersten ran, wenn doch nach dem ersten Nullbyte aufgehört wird, zu lesen? Auf dieser Seite wird die Sache für VB6 beleuchtet, was ich aber leider mangels Kenntnissen in VB nicht so wirklich verarbeiten kann.

Kann mich jemand erleuchten?

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: lpDependencies in QUERY_SERVICE_CONFIG

  Alt 16. Mär 2014, 18:03
Indem man keine Kopierfunktion benutzt, welche beim #0 aufhört.
Einige APIs arbeiten mit einem zusätzlichen Parameter für die Länge,
oder man greift Zeichen für Zeichen darauf zu und verwendet dabei ebenfalls eine Längenangabe und nicht die #0 für's Ende.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#3

AW: lpDependencies in QUERY_SERVICE_CONFIG

  Alt 16. Mär 2014, 18:21
Einige APIs arbeiten mit einem zusätzlichen Parameter für die Länge,
Und welche Länge sollte ich deiner Meinung nach benutzen? Ich kenne sie doch vorher nicht.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: lpDependencies in QUERY_SERVICE_CONFIG

  Alt 16. Mär 2014, 18:39
Im Grunde steht alles in der Beschreibung.
Zitat:
A pointer to an array of null-separated names of services or load ordering groups that must start before this service. The array is doubly null-terminated
Es gibt da jetzt mehrere Wege das auszulesen.
Entweder man sucht die Doppel-0 (#0#0 ), oder man such den "leeren" String ('' ).
  • #0#0 suchen und bis dahin auslesen
  • einen String nach dem Anderem auslesen (jeweils bei #0 aufhören)
    und der letzte String ist demnach leer, da sofort wieder die entgültig abschließende #0 kommt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: lpDependencies in QUERY_SERVICE_CONFIG

  Alt 16. Mär 2014, 18:58
OK, also ist der Weg, den ich in diesem niederländischen Forum gefunden habe, gar nicht so verkehrt.

Momentan benutze ich dies:
Delphi-Quellcode:
var Buffer: PQueryServiceConfig;
    deplist: PChar;

deplist:= Buffer^.lpDependencies;
if Assigned(deplist) then
begin
  while deplist[0] <> #0 do
  begin
    if deplist <> 'then
      FDependencies.Add(deplist);
    Inc(deplist, StrLen(deplist) + 1)
  end;
end;
FDependencies ist eine TStringList.

Aber wie ist die Situation mit PWideChar (Buffer: PQueryServiceConfigW; ) und Aufruf der entsprechenden Funktion QueryServiceConfigW? Werden die PWideChars nicht bereits mit doppeltem #0 abgeschlossen? Nicht dass ich das im Delphi 5 brauchen würde, ich frag nur interessehalber.

MfG Dalai
  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 18:37 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