Conversion d'un char en LPCSTR ?

Xilofeon Messages postés 55 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 14 avril 2007 - 24 déc. 2003 à 13:59
Xilofeon Messages postés 55 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 14 avril 2007 - 24 déc. 2003 à 20:48
Bonjour d'un débutant en C++

Voila j'arrive pas à convertire un char en LPCSTR

Voici la parti du code ki me pose pb :

...

void LitTexte(HKEY HK,char* cle,char* nom,char* valeur,unsigned long taille)
{
    HKEY Retour;
    unsigned long type;
    
    RegOpenKeyEx(HK,cle,0,KEY_ALL_ACCESS,&Retour);
    RegQueryValueEx( Retour,nom,NULL,&type,(unsigned char *)valeur,&taille);
    RegCloseKey(Retour);
}

void killer()
{
MessageBox(NULL, "blabla", "Unhandled Exception", MB_OK | MB_ICONERROR);
exit(-1);
}
static int Run(LPTSTR /*lpstrCmdLine*/ NULL, int nCmdShow SW_SHOWDEFAULT)
{
      if(Util::getOsVersion()=="WinXP Pro SP1") {
char valeur[14];
LitTexte(HKEY_LOCAL_MACHINE,"SOFTWARE\\test","InstallPath",valeur,14);
MessageBox(NULL, &valeur, "test", MB_OK | MB_ICONINFORMATION);
}
else {
killer();
}

...


mm en ulisant la fonction .c_str() comme suis
MessageBox(NULL, &valeur.c_str(), "test", MB_OK | MB_ICONINFORMATION);


Le compileur me retourne encore une erreur.

Ou peut être ke j'utilise pas le bon code pour lire la base de registre.

le message box c'était juste pour verifier ce ke sa donne.
M'enfin je voudrai bien savoir kan mm comment sa marche.

Ce ke je veut c'est faire kelke chose komme sa ensuite dite moi si c'est bon (a la place du message box en faite):
if(valeur=="12889-454-4464-466-54664") {
....


Ce que je faire en definitif c'est excuté un bout de code ke si la valeur d'une clef corespond a se ke j'atend.

J'espére avoir été clair.

Merci de vos reponses

PS : J'utlise VC++ 7.1
A voir également:

3 réponses

hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
24 déc. 2003 à 14:32
Quel est le probleme ? un LPCSTR c'est juste un const char *.
donc si tu dois passer un LPCSTR et que tu as un pointeur sur un char, il suffit de caster

char * chaine;

appel(..., (LPCSTR) chaine);

Ai-je compris la question ?
0
Xilofeon Messages postés 55 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 14 avril 2007
24 déc. 2003 à 15:55
vi en effet si je met pas & devant "valeur"
cela fonctionne cela marche eglement avec (LPCSTR)valeur

mais kan le messageBox s'ouvre il me sort des caractére incompréhensible. au lieu de me donné la valeur la clef de la basse de registre.
Alors kelle fonction utilisé pour sortir les résultat en caractére normal ?
0
Xilofeon Messages postés 55 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 14 avril 2007
24 déc. 2003 à 20:48
J'ai trouvé mon erreur
Je pointait vers une clef ki n'éxistait pas
et de plus
mon char valeur[14]
n'était pas assez grand.
0
Rejoignez-nous