J'ai rencontré le terme Le code sur ma page est le suivant: p> getprivateprofileString code> dans un programme C ++. Quelqu'un pourrait-il me donner une explication simple de l'utilisation de cette fonction?
4 Réponses :
de MSDN:
récupère une chaîne de la section spécifiée dans une initialisation Fichier. P>
note p>
Cette fonction est fournie uniquement pour la compatibilité avec 16 bits Applications Windows. Les applications doivent stocker l'initialisation informations dans le registre. P> blockQuote>
Syntaxe strong> p> xxx pré> p>
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.
getprivateProfileString () code>
lit les valeurs des fichiers .ini. p>
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! P>
à lire de Win.ini vous avez appelé Il arrive que Raymond Chen a une belle article sur pourquoi .ini Les fichiers ont été obsolètes en faveur du registre. p> getProfileString () code>. Le privé dans
getprivateProfileString () code> 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. P>
getprivateprofileString () code> 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. P>
+1 pour ne pas simplement copier-coller de MSDN. Mais je pense que getprivateprofileString () code> 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 () code>.
@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 code>,
web.config code> et
appsettings.json code>, les gens ont redécouvert certaines des vertus de
.ini code> 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 i> à propos de ces choses.
Cela récupère des informations de configuration à partir d'un fichier .ini p>
C'est pour la lecture de .ini des dossiers. C'est une ancienne API Win16. Vous ne devriez pas l'utiliser. P>
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.