c ++ - Hvad er formålet med GetPrivateProfileString?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har stødt på udtrykket GetPrivateProfileString i et C ++-program. Kan nogen give mig en simpel forklaring på brugen af ​​denne funktion?


Koden på min side er:


GetPrivateProfileString("files", "directory", "/mediadb/files/", directory, os.path.getsize(directory), "apache")

Bedste reference


GetPrivateProfileString() læser værdier fra .ini-filer. [8]


Vejen tilbage, da der i dagene med 16-bit Windows var vejen til at læse og skrive applikationskonfigurationsdata. Derefter lagrede programmer deres konfiguration i en delt .ini-fil, der boede i systemmappen, kaldet win.ini. Dårlige tider!


At læse fra win.ini du ringede GetProfileString(). Den private i GetPrivateProfileString() er tegn på, at denne vidunderlige funktion tillod dig at få adgang til en .ini-fil, der ikke er win.ini, dvs. en privat til din ansøgning. Hvis jeg husker korrekt (og min hukommelse er uklar), blev de fleste applikationer videreført ved hjælp af win.ini i år og år efter, at det officielt blev fransket til at gøre det.


Det sker så, at GetPrivateProfileString() er et utroligt rynket dyr med forfærdelige præstationsegenskaber og svære at forstå oddities. Jeg undgår personligt det som pesten, og hvis jeg skal behandle .ini-filer, bruger jeg skræddersyet kode til at gøre det.


Raymond Chen har en god artikel om hvorfor .ini-filer blev udskrevet til fordel for registret. [9]

Andre referencer 1


Fra MSDN:



  Henter en streng fra den angivne sektion i en initialisering
  fil.

  
  Bemærk

  
  Denne funktion er kun tilgængelig for kompatibilitet med 16-bit
  Windows-baserede applikationer. Applikationer skal gemme initialisering
  oplysninger i registreringsdatabasen.



Syntax


DWORD WINAPI GetPrivateProfileString(
  \_\_in   LPCTSTR lpAppName,
  \_\_in   LPCTSTR lpKeyName,
  \_\_in   LPCTSTR lpDefault,
  \_\_out  LPTSTR lpReturnedString,
  \_\_in   DWORD nSize,
  \_\_in   LPCTSTR lpFileName
);

Andre referencer 2


Det er til at læse fra .ini filer. Det er en gammel win16 API. Du bør ikke bruge den. [10]

Andre referencer 3


Dette henter konfigurationsoplysninger fra en .ini-fil