IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[Base de Registre] - registry.hpp


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut [Base de Registre] - registry.hpp
    Bonjour a tous,
    j'ai réagit par rapport a un post sur le forum Borland C++ et je me rend désormais dans le bon forum pour poster ma question.

    Je souhaite développer une appli tres simple qui lit une valeur dans la base de registre.
    J'ai pu lire le tutorial pour faire cela sur developpez.com.

    Cependant, a l'inclusion de la librairie <registry.hpp>, le compilateur me jette.

    Est ce qu'il y a une autre facon de faire pour Visual C++, et sinon, ou puis je trouver le pack de librairies nécessaires ?
    merci.

    Pour info, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "stdafx.h"
    #include <registry.hpp>
     
    int main(int argc, char* argv[])
    {
     
    	return 0;
    }

    et le message d'erreur :
    fatal error C1083: Cannot open include file: 'registry.hpp': No such file or directory

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut

    ce fichier est inconnu (spécifique Borland ?)

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    Dans ce cas, comment aller lire une clé dans une base de registre sous Visual C++ ?

    Pour info, voici le topic de developpez.com:

    http://c.developpez.com/faq/bcb/?page=systemeregistre

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    En Win32 pur, y'a des fonctions spécifiques (RegOpenKeyEx...)
    http://msdn.microsoft.com/library/en-us/sysinfo/base/registry.asp
    -> recherche sur le forum

    Après, certaines libs C++ encapsulent ces fonctions, c'est sûrement le cas de BCB.
    En Win32, ça devrait passer sous tous les compilos (Win32).

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    Bonjour,

    Je suis allé voir les fonctions sur le lien que tu m'as donné. Ca m'a l'air de rendre exactement ce dont j'ai besoin. Cependant, je souhaiterais un petit coup de main pour les mettre en oeuvre.

    voici mon code plutot simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "stdafx.h"
    //#include "Winreg.h"
     
    #define MAXESC 255
    int main(int argc, char* argv[])
    {
    	int nError;
    	if (nError = RegOpenKeyEx( HKEY_LOCAL_MACHINE, szkey, 0, KEY_ALL_ACCESS, &k ) ) return nError;
     
    	return 0;
    }
    Si je n'inclue pas la librairie Winreg.h, alors le compilateur me jette ne connaissant pas les fonctions et variables citées.

    Je l'inclue donc, et la, j'ai une erreur :

    c:\.....\winreg.h(36) : error C2146: syntax error : missing ';' before identifier 'REGSAM'
    c:\.....\winreg.h(36) : fatal error C1004: unexpected end of file found

    L'erreur me renvoie a la ligne suivante dans Winreg.h :

    typedef ACCESS_MASK REGSAM;

    Sachant que c'est une librairie standard, elle ne semble pas comporter d'erreur. S'agirait il d'un type non reconnu ? Dans la doc, ils parlaient également de .lib et .dll... Faut il aussi les inclure ? comment ?

    Please, help !! je n'ai pas de réelles connaissances en visual C++, je suis plutot orienté, C, java, php ... Mais je souhaite développer ma petite appli en C++.

    Merci de votre aide.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    Petite réponse pour que ceux qui auraient le meme probleme que moi. Ca fait deux jours que je cherche la solution a mon probleme, et je l'ai trouvée sur un site allemand (je ne comprends pas l'allemand entre nous).

    J'ai juste inclus la librairie windows.h avant le winreg.h et ca s'améliore !!!

    Voici donc mon nouveau code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #include "stdafx.h"
    #include "Windows.h"
    #include "Winreg.h"
    #include "stdio.h"
     
    int main(int argc, char* argv[])
    {
    	HKEY  hKeyRes;
     
        if( RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.5\\",
                             0, KEY_QUERY_VALUE,
                             &hKeyRes) == ERROR_SUCCESS )
        {
     
    			printf("cle trouve");
     
        }
    	else
    	{
    		printf("cle non trouve");
    	}
     
    	return 0;
     
    }
    Avec cette clé, je n'obtiens que des "cle non trouve". En cherchant un peu, je me suis apercu que c'etait a cause du "Java Runtime Environment" et sans doute des espaces. Comment puis je remédier a cela ???

  7. #7
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Change "\\SOFTWARE" en "SOFTWARE".
    Fait une recherche sur le forum avec RegOpenKeyEx et ses copines, tu trouveras bcp d'exemples, en français

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    Merci beaucoup, ca marche nickel désormais !!!

Discussions similaires

  1. Comment écrire dans la base de registre sans mettre Registry dans Uses ?
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 13/02/2013, 20h35
  2. Recherche en base de registre
    Par Pomalaix dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2012, 10h58
  3. [Windows]accès base de registre windows
    Par Greg01 dans le forum API standards et tierces
    Réponses: 27
    Dernier message: 05/06/2007, 15h14
  4. Accès à la base de registre windows à distance
    Par xavame dans le forum Sécurité
    Réponses: 4
    Dernier message: 13/07/2005, 15h23
  5. Utilisez vous la base de registres ?
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/06/2002, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo