8
votes

Quel est le but de getprivateProfileString?

J'ai rencontré le terme getprivateprofileString dans un programme C ++. Quelqu'un pourrait-il me donner une explication simple de l'utilisation de cette fonction?

Le code sur ma page est le suivant: xxx


1 commentaires

Tous ceux qui ont fermé cette question ont été mal compris la portée de la question. Cela ne concerne pas une fonction dans une base de code aléatoire. Cette fonction est une API Windows Microsoft Windows et contrairement à l'argument inférieur à cette API est tout à fait présente dans beaucoup de code hérité. Donc, cette question est probablement susceptible d'avoir des visiteurs à l'avenir.


4 Réponses :


1
votes

de MSDN:

récupère une chaîne de la section spécifiée dans une initialisation Fichier.

note

Cette fonction est fournie uniquement pour la compatibilité avec 16 bits Applications Windows. Les applications doivent stocker l'initialisation informations dans le registre.

Syntaxe xxx


1 commentaires

Ce n'est pas beaucoup d'aide. Qu'est-ce qu'un fichier d'initialisation? Je pense que Schurf a besoin d'aide à ce niveau plutôt que d'une copie / pâte MSDN.



19
votes

getprivateProfileString () lit les valeurs des fichiers .ini.

retour quand, dans les jours de 16 bits Windows, il s'agissait de lire et d'écrire des données de configuration de l'application. À l'époque, les applications ont enregistré leur configuration dans un fichier partagé .ini qui a vécu dans le répertoire système, appelé Win.ini. Mauvais moments!

à lire de Win.ini vous avez appelé getProfileString () . Le privé dans getprivateProfileString () est indicatif du fait que cette merveilleuse fonction vous a permis d'accéder à un fichier .ini autre que Win.ini, c'est-à-dire un privé à votre application. Si je me souviens bien (et ma mémoire est brumeuse), la plupart des applications portées à l'aide de Win.ini pendant des années et des années après avoir été officiellement fronçonnées de le faire.

Il arrive que getprivateprofileString () est une bête incroyablement rincée avec des caractéristiques de performance terribles et durable pour comprendre les bizarreries. Personnellement, je l'évite comme la peste et si je dois traiter des fichiers .ini, j'utilise le code sur mesure pour le faire.

Raymond Chen a une belle article sur pourquoi .ini Les fichiers ont été obsolètes en faveur du registre.


6 commentaires

+1 pour ne pas simplement copier-coller de MSDN. Mais je pense que getprivateprofileString () lit en fait à partir du fichier privé .ini d'une application. Celui dont vous parlez de cette lecture du fichier Win.ini commun est getprofileString () .


@Praetorien merci pour cela. Ma mémoire est brumeuse. C'était il y a longtemps! J'ai mis à jour la réponse afin que j'espère qu'elle soit plus précise.


+1 Merci beaucoup pour votre temps et votre patience @David Heffernan !!


Je ne conviens pas que la fonction est uniquement une relique de fenêtres de 16 bits, ni que c'est une bête ride avec des bizarreries difficiles à comprendre. C'est assez simple de comprendre, en fait. Je ne recommanderais pas de l'utiliser sur de meilleures méthodes, mais c'est toujours un membre pris en charge de l'API Win32 et fonctionne toujours exactement comme décrit dans la documentation. Il a des avantages sur la bête véritablement ridé, appelée registre, ce qui n'est vraiment pas beaucoup plus qu'une version brillante de Win.ini. La réalité est que les fichiers .ini n'étaient qu'une simple version de fichiers .config privilégié par .NET aujourd'hui.


Qu'est-ce qui rend getprivateprofileString une bête incroyablement ridé avec des bizarreries? Je suis véritablement intéressé. Et pour la plupart des applications, je ne vois pas comment les caractéristiques de performance importeraient ... La configuration de l'application n'est généralement pas le goulot d'étranglement ... (évidemment, les fichiers INI eux-mêmes ont de nombreux défauts comme indiqué par Raymond Chen dans blogs.msdn.com/b/oldnewthing/archive/2007/11/26 /6523907.aspx - Mais ceux-ci ressemblent à des défauts de format ini et non aux rides avec la mise en œuvre de GetPrivateProfileString.)


Et avec la résurgence de app.config , web.config et appsettings.json , les gens ont redécouvert certaines des vertus de .ini fichiers; Bien que ne soient pas attentionnés sur les inconvénients, aucune sécurité granulaire et DOS. Mais il s'avère que nous ne sommes tout simplement pas Care à propos de ces choses.



1
votes

Cela récupère des informations de configuration à partir d'un fichier .ini


0 commentaires

1
votes

C'est pour la lecture de .ini des dossiers. C'est une ancienne API Win16. Vous ne devriez pas l'utiliser.


0 commentaires