GetPrivateProfileString : lire un fichier .INI [Résolu]

Messages postés
3
Date d'inscription
mardi 22 janvier 2008
Dernière intervention
31 mars 2010
- - Dernière réponse : MaxMax0
Messages postés
3
Date d'inscription
mardi 22 janvier 2008
Dernière intervention
31 mars 2010
- 31 mars 2010 à 21:10
Bonjour,

Je n'arrive pas à compiler un exemple très simple (j'ai beau être débutant j'ai l'impression que le problème ne vient pas du code) :
J'ai le message d'erreur ci-dessous :

[size=50]g:\visual_cpp_app\ini\ini.cpp(18) : error C2373: 'GetPrivateProfileStringW' : redéfinition ; modificateurs de type différents
e:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(7796) : voir la déclaration de 'GetPrivateProfileStringW'
g:\visual_cpp_app\ini\ini.cpp(58) : error C3861: 'GetPrivateProfileStringW' : identificateur introuvable


J'ai essayé x variantes du code joint mais sans succès.
J'utilise Visual C++ sous WinXP MAIS l'installation est sur un disk E: au lieu du disk C:. Est-ce que le problème peut venir de cela ? (le windows.h est bien lu sur le disk E: mais n'essaye-t-il pas de faire un lien avec une .dll du disk C: ?./size



#include <stdlib.h>
#include <stdio.h>
#include <windows.h>

DWORD GetPrivateProfileString(
  LPCTSTR lpAppName,
  LPCTSTR lpKeyName,
  LPCTSTR lpDefault,
  LPTSTR lpReturnedString,
  DWORD nSize,
  LPCTSTR lpFileName
);

int main(int argc, char *argv[])
{
char temp[100];

GetPrivateProfileString("TEST", "Cle1", "", temp, 100, "Test.ini" );
printf("Resultat = %s",temp);

}



La déclaration dans fichier winbase.h :
WINBASEAPI
DWORD
WINAPI
GetPrivateProfileStringW(
    __in_opt LPCWSTR lpAppName,
    __in_opt LPCWSTR lpKeyName,
    __in_opt LPCWSTR lpDefault,
    __out_ecount_part_opt(nSize, return + 1) LPWSTR lpReturnedString,
    __in     DWORD nSize,
    __in_opt LPCWSTR lpFileName
    );


J'ai essayé de remplacer dans mon code :
- LPCTSTR par LPCWSTR : idem

MaxMax0
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
3
Merci
Pourquoi tu remets un proto de GetPrivateProfileString au dessus de main() ???
Vire cela et compile en ANSI au lieu de UNICODE et tout rentrera dans l'ordre.
Sinon mets tes chaines au format UNICODE.

ciao...
BruNews, MVP VC++

Merci BruNews 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
3
Merci
TCHAR szappname[] = L"MonProg";

Voir aussi _T ou _TEXT.

http://brunews.com/brunews/download/JR4.zip
Unicode y est complètement détaillé au chapitre 2.

ciao...
BruNews, MVP VC++

Merci BruNews 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de BruNews
Messages postés
3
Date d'inscription
mardi 22 janvier 2008
Dernière intervention
31 mars 2010
0
Merci
Merci
J'ai réussi à compiler et faire fonctionner le prog. mais j'avoue que je n'ai pas bien compris ce qu'il faut faire pour compiler en ANSI ou UNICODE.
Je m'en suis sorti en décochant "Hériter des paramètres par défaut du parent ou du projet" sous propriété / ... / Définition du préprocesseur : Les valeur héritées étaient "_UNICODE" et "UNICODE"
Je n'ai pas trop trouvé d'info sur le Web à ce sujet

"Sinon mets tes chaines au format UNICODE" ?? comment fait-on ?

MaxMax0
Commenter la réponse de MaxMax0
Messages postés
3
Date d'inscription
mardi 22 janvier 2008
Dernière intervention
31 mars 2010
0
Merci
Merci
Je vais étudier l'aide. Les quelques lignes que j'ai déja lu mon déja un peu éclairci les idées.
MaxMax0
Commenter la réponse de MaxMax0

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.