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

Windows Discussion :

Débutant sous dev c++


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Points : 63
    Points
    63
    Par défaut Débutant sous dev c++
    Salut à tous, je suis total débutant.
    J'utilise dev c++.
    Je voudrais utiliser la fonction SHGetSpecialFolderPath(HWND,LPWSTR,int,BOOL)
    J'ai bien mis #include<shlobj.h> au début.
    Le compilateur m'indique undeclared.
    Qu'est-ce que j'ai oublié.
    Merci à tous.
    Alain

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    undeclared à la compilation ou à l'édition de lien?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Points : 63
    Points
    63
    Par défaut
    Salut,
    Il me semble que c'est à la compilation:
    Le compilateur s'arrête à cette ligne.

    Les log de compi:



    Building Makefile: "D:\Program Files\EasyPHP1-7\www\vivanote\animations\protection-anti-copie\cache\Makefile.win"
    Exécution de make...
    make.exe -f "D:\Program Files\EasyPHP1-7\www\vivanote\animations\protection-anti-copie\cache\Makefile.win" all
    g++.exe -c main.cpp -o main.o -I"D:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"D:/Dev-Cpp/include/c++/3.4.2/backward" -I"D:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"D:/Dev-Cpp/include/c++/3.4.2" -I"D:/Dev-Cpp/include"

    main.cpp: In function `int main(int, char**)':

    main.cpp:27: error: `SHGetSpecialFolderPath' undeclared (first use this function)
    main.cpp:27: error: (Each undeclared identifier is reported only once for each function it appears in.)

    make.exe: *** [main.o] Error 1

    Exécution terminée


    Merci infiniment.
    Alain

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce n'est pas sûr, mais ça peut être un problème de #define manquant avant les headers:
    Using the Windows Headers (voir la liste "legacy macros")
    Ou bien, c'est que les headers MinGW ne déclarent pas cette fonction.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Points : 63
    Points
    63
    Par défaut
    Merci beaucoup, ça marche
    Il fallait mettre:
    #define _WIN32_IE 0x0401

    Juste une petite question:
    La fonction marche que je lui transmette
    char buffer[MAX_PATH];
    ou
    TCHAR buffer[MAX_PATH]; que j'ai vu dans des exemples

    Quelle est la différence entre ces deux types.

    Merci
    Alain

  6. #6
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Citation Envoyé par alainpeniche Voir le message
    Merci beaucoup, ça marche
    Il fallait mettre:
    #define _WIN32_IE 0x0401

    Juste une petite question:
    La fonction marche que je lui transmette
    char buffer[MAX_PATH];
    ou
    TCHAR buffer[MAX_PATH]; que j'ai vu dans des exemples

    Quelle est la différence entre ces deux types.

    Merci
    Alain
    TCHAR vaut WCHAR si _UNICODE (ou UNICODE) est défini, CHAR autrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifdef UNICODE
     typedef WCHAR TCHAR;
    #else
     typedef char TCHAR;
    #endif
    (WCHAR étant un typedef sur wchar_t)

    voir :

    Windows Data Types : http://msdn2.microsoft.com/en-us/library/aa383751.aspx

    Windows Data Types for strings : http://msdn2.microsoft.com/en-us/library/ms776419.aspx

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Points : 63
    Points
    63
    Par défaut
    Merci beaucoup les gars, ces liens me serviront...

    Alain

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par Neitsa Voir le message
    TCHAR vaut WCHAR si _UNICODE (ou UNICODE) est défini, CHAR autrement
    Attention: Les deux doivent être définis, ou aucun. Sinon, tu risques un beau bordel, entre:
    • La CRT qui utilise _UNICODE
    • L'API Windows qui utilise UNICODE
    • Les MFC qui utilisent _UNICODE par endroits.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de débutant avec la librairie glut sous dev C++
    Par mozillo3625 dans le forum Windows
    Réponses: 0
    Dernier message: 30/11/2007, 22h56
  2. Problème d'include sous Dev-c++ 4.9.8.0
    Par Argonz dans le forum Dev-C++
    Réponses: 16
    Dernier message: 20/11/2003, 17h36
  3. Réponses: 1
    Dernier message: 06/01/2003, 07h55
  4. Couleur sous DEV C++ ou Turbo C ++
    Par bootix dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 19/12/2002, 09h28
  5. [GTK]PB Librairie GTK+ sous dev-c++
    Par wozzy dans le forum Dev-C++
    Réponses: 15
    Dernier message: 05/11/2002, 14h55

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