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

C++ Discussion :

pb sous visual c++ 5 express et win32 dll


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Par défaut pb sous visual c++ 5 express et win32 dll
    Bonjour,
    je suis nouveau sur ce forum, et pour me présenter succintement je dirais que je viens vers le C++ (après avoir fait du C il y a bien longtemps) pour développer des plugins pour le logiciel de 3D Maya.
    J'ai installé la version de Visual C++ 5 express édition ainsi que le SDK server 2003 full R2. J'ai suivi le tutoriel sur ce site "Démarrer avec Visual C++ 2005 express" - "Création et compilation d'un projet C/C++" et tout fonctionne à merveille.
    Là où ça commence à ne plus aller c'est quand je veux tester un pauvre "hello world" façon plugin pour maya. En utilisant un wizard de maya j'ai beaucoup d'erreurs à l'édition de liens "LNK2019".
    Et sans utiliser de wizard, ce qui me plairait plus, j'ai suivi des instructions sur un forum spécialisé maya sur lequel il est indiqué de créér un projet de type win32 option DLL...mais je ne peux pas car l'option DLL est grisée.
    Est-ce une limitation de la version express? Est-ce dû au fait que je sois sur XP64?
    Voili voilo, si quelqu'un a une piste...
    Merci en tout cas d'avoir pris le temps de me lire.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Hum...
    Si je me souviens bien, il y a une limitation en effet sur la versions Express. Je crois que le mieux est de créer un projet Win32 Console vide, et changer deux options:
    • Le type de projet dans les propriétés générales du projet,
    • Le subsystem dans les propriétés du Linker (/SUBSYSTEM:Windows)
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Par défaut
    Merci pour cette réponse, qui "colle" bien à mon problème. J'ai appliqué vos conseils et cela va dans le bon sens, mais il me reste à surmonter un petit souci apparemment : je suis sous xp64, et pour cette version il manque mfc80.lib! Tout désapointé que je suis... C'est la dernière erreur annoncée par le compilateur de VS express, avant de pouvoir commencer à tester la réalisation de plugins pour maya.
    Ce qui est vraiment déroutant c'est de ne pas avoir de vue claire sur tous les fichiers nécessaires pour commencer... Peut-être y-a-t-il un schéma sur le site?
    Merci en tout cas pour votre aide.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Essaie de changer les réglages pour ne PAS utiliser MFC dans ton projet.
    MFC n'est pas fourni avec la version Express de Visual 2005 (eh oui, MFC c'est payant).
    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 averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Par défaut
    et bien oui mais comme je le disais, je ne sais même pas ce qu'est MFC... Au flan : Microsoft File Components?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Non, ce sont les Microsoft Foundation Classes, une bibliothèque de classes C++ utiles notamment pour faire des programmes avec interface graphique.
    WordPad par exemple, est un programme fait en utilisant MFC.

    Le fait d'utiliser MFC ou non se règle dans les propriétés du projet:
    "Project Properties" -> "Configuration Properties" -> "General" -> Champ "Use of MFC" -> Régler à "Use standard Windows libraries".
    Et en profiter aussi pour s'assurer que "Use of ATL" est réglé sur "Not using ATL" (ATL est également une bibliothèque payante de Microsoft, qui n'a rien à voir avec la STL qui est standard).
    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.

  7. #7
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Citation Envoyé par mayadev Voir le message
    ...
    Et sans utiliser de wizard, ce qui me plairait plus, j'ai suivi des instructions sur un forum spécialisé maya sur lequel il est indiqué de créér un projet de type win32 option DLL...mais je ne peux pas car l'option DLL est grisée.
    ...
    Par défaut, les projets win32 et dll sont grisés. Microsoft a donné la solution pour dégriser le tout:

    Aller dans le répertoire "C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1036\"

    il y a un fichier "AppSettings.htm".

    Ouvrir ce fichier en mode texte, Puis modifier les lignes de codes suivantes:

    if (window.external.FindSymbol("IS_EXPRESS_SKU"))
    {
    SUPPORT_ATL.disabled = true;
    support_atl_title.disabled = true;
    SUPPORT_MFC.disabled = true;
    support_mfc_title.disabled = true;
    WIN_APP.disabled = true;
    WIN_APP_LABEL.disabled = true;
    DLL_APP.disabled = true;
    DLL_APP_LABEL.disabled = true;
    }

    par:

    if (window.external.FindSymbol("IS_EXPRESS_SKU"))
    {
    SUPPORT_ATL.disabled = true;
    support_atl_title.disabled = true;
    SUPPORT_MFC.disabled = true;
    support_mfc_title.disabled = true;
    //WIN_APP.disabled = true;
    //WIN_APP_LABEL.disabled = true;
    //DLL_APP.disabled = true;
    //DLL_APP_LABEL.disabled = true;
    }

    A mon avis ce n'est pas la peine d'essayer d'activer le support d'atl et de mfc car les sources et les librairies ne sont pas fournit. (Encore que pour ATL il semble que si).



    Citation Envoyé par mayadev Voir le message

    pour cette version il manque mfc80.lib!
    Si le plugging Maya utilise des librairies de la MFC. Tu dois acheter Visual Studio...

    Avec Vc++ express, pas de prise en charge des MFC.

    Par contre, en créant un projet win32 pur avec les indications ci-dessus, tu n'auras peut-être plus ces soucis de mfc80.lib.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Par défaut
    Merci, effectivement cette solution me permet de créér directement un projet win32 avec l'option dll activée.
    J'avance, piano piano...
    Donc plus de problème de mfc80.lib, ce qui me semble plus normal car à ce que j'ai compris on ne doit pas avoir besoin de cette lib pour développer des plugin pour maya. Seulement vs c++ express et sdk.
    Mais maintenant je me retrouve avec des erreurs de compilation dans un fichier d'entêtes propre à maya, et je serais étonné qu'il en comporte effectivement, je penche plutôt largement pour de l'ignorance de ma part, comme l'absence de bonnes directives ou je ne sais quoi...
    Voici les erreurs en question :

    1>c:\program files\autodesk\maya8.5\include\maya\mtypes.h(233) : error C2632: 'char' followed by 'bool' is illegal
    1>c:\program files\autodesk\maya8.5\include\maya\mtypes.h(233) : warning C4091: 'typedef ' : ignored on left of 'unsigned char' when no variable is declared
    1>c:\program files\autodesk\maya8.5\include\maya\mtypes.h(237) : error C2143: syntax error : missing '}' before 'constant'
    1>c:\program files\autodesk\maya8.5\include\maya\mtypes.h(237) : error C2143: syntax error : missing ';' before '}'
    1>c:\program files\autodesk\maya8.5\include\maya\mtypes.h(237) : error C2059: syntax error : '}'

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Par défaut
    Je remarque que ces erreurs viennent toutes du même bloc :

    #ifndef _BOOL
    typedef unsigned char bool;
    #if !defined(true) && !defined(false)
    #ifndef TRUE_AND_FALSE_DEFINED
    #define TRUE_AND_FALSE_DEFINED
    enum {false,true};
    #endif // TRUE_AND_FALSE_DEFINED
    #endif // true and false
    #endif // _BOOL

    Peut-être que cela vous dira quelque chose.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ça ressemble à un header C, ou une c***erie du genre: Le type "bool" est un mot-clé C++, il ne faut donc pas de typedef dessus.
    Essaie peut-être en rajoutant _BOOL dans les propriétés du préprocesseur...
    Project Properties -> Configuration properties -> C/C++ -> Preprocessor -> Preprocessor definitions.
    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.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 36
    Par défaut
    Un pas de plus
    avec _BOOL dans le preprocesseur, même si je ne capte pas tout, je n'ai plus ces erreurs...mais évidemment de nouvelles apparaissent :

    1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
    1>libcpmtd.lib(xdebug.obj) : error LNK2019: unresolved external symbol __malloc_dbg referenced in function "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z)
    1>libcpmtd.lib(xdebug.obj) : error LNK2019: unresolved external symbol __free_dbg referenced in function "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z)

    J'ai essayé de mettre /NODEFAULTLIB mais j'en ai alors encore trois fois plus...
    Le chemin est long et difficile, j'imagine que ça en vaut largement la peine, du moins je me raccroche à ça, et sans votre aide j'aurais laissé tomber tant c'est abscons pour un ignare du C++ et de l'environnement visual express.

Discussions similaires

  1. System.Data.Linq.Mapping sous Visual C# 2008 Express ?
    Par Papy214 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 26/02/2008, 10h23
  2. application sous Visual basic 2005 express
    Par elmo93 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/01/2008, 09h55
  3. Debutant besoin d'aide sous visual cpp 2005 express
    Par Jhulk dans le forum Débuter
    Réponses: 2
    Dernier message: 19/10/2007, 23h10
  4. GetPixel sous Visual C++ 2005 Express
    Par Iznogoodsnow dans le forum Visual C++
    Réponses: 7
    Dernier message: 30/11/2006, 09h25
  5. Erreurs de links sous Visual C++ 2005 Express
    Par Spartan03 dans le forum wxWidgets
    Réponses: 6
    Dernier message: 13/11/2006, 18h27

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