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 :

[vs] Code c++ qui marche que en 32Bits et pas en 64


Sujet :

Windows

  1. #1
    Membre éclairé
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut [vs] Code c++ qui marche que en 32Bits et pas en 64
    Bonjour, voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, 0, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, 0, &ultracopier_regkey, 0);
    	DWORD kSize=254;
    	if(RegQueryValueEx(ultracopier_regkey,TEXT("ultracopier"),NULL,NULL,(LPBYTE)0,&kSize) == ERROR_SUCCESS)
    		checkBoxStart->setChecked(true);
    	RegCloseKey(ultracopier_regkey);
    Des que je fait des accéss au registre j'ai l'erreur en compilant en 64Bits, par contre en 32Bits mon code marche trés bien.
    Voila l'erreur:
    Generating Code...
    link /LIBPATH:"c:\Qt\lib" /NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"debug\ultracopier.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\ultracopier.exe @C:\Users\user\AppData\Local\Temp\nm9F39.tmp
    main.obj : error LNK2019: unresolved external symbol __imp_RegCloseKey referenced in function "bool __cdecl getSystemCopyCatched(void)" (?getSystemCopyCatched@@YA_NXZ)
    Options.obj : error LNK2001: unresolved external symbol __imp_RegCloseKey
    main.obj : error LNK2019: unresolved external symbol __imp_RegQueryValueExW referenced in function "bool __cdecl getSystemCopyCatched(void)" (?getSystemCopyCatched@@YA_NXZ)
    Options.obj : error LNK2001: unresolved external symbol __imp_RegQueryValueExW
    main.obj : error LNK2019: unresolved external symbol __imp_RegCreateKeyExW referenced in function "bool __cdecl getSystemCopyCatched(void)" (?getSystemCopyCatched@@YA_NXZ)
    Options.obj : error LNK2001: unresolved external symbol __imp_RegCreateKeyExW
    main.obj : error LNK2019: unresolved external symbol __imp_RegSetValueExW referenced in function "bool __cdecl newRegQuery(struct HKEY__ *,unsigned short const *,unsigned short const *,class QString const &)" (?newRegQuery@@YA_NPEAUHKEY__@@
    PEBG1AEBVQString@@@Z)
    Options.obj : error LNK2001: unresolved external symbol __imp_RegSetValueExW
    Options.obj : error LNK2019: unresolved external symbol __imp_RegDeleteValueW referenced in function "private: void __cdecl optionsDialog::apply(void)" (?apply@optionsDialog@@AEAAXXZ)
    debug\ultracopier.exe : fatal error LNK1120: 5 unresolved externals
    NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\
    VC\BIN\amd64\link.EXE"' : return code '0x460'
    Stop.
    NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\
    VC\BIN\amd64\nmake.exe"' : return code '0x2'
    Stop.
    D'où découle plusieurs question:
    - Quel lib linker?
    - Comment grâce à des macro pre-processeur voir si on est en 64Bits sous visual?

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par alpha_one_x86 Voir le message
    - Comment grâce à des macro pre-processeur voir si on est en 64Bits sous visual?

  3. #3
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 391
    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 391
    Par défaut
    Mais ces erreurs semblent simplement vouloir dire que le projet n'est pas lié à advapi32.lib (ou équivalent) quand tu compiles en 64 bits...
    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.

Discussions similaires

  1. [AC-2007] problème de code qui marche sur un pc mais pas tous
    Par rominous41 dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/06/2011, 09h07
  2. Réponses: 3
    Dernier message: 21/03/2011, 02h28
  3. Code qui marche sur un poste mais pas sur un autre
    Par TOSCAN dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2008, 21h09
  4. Réponses: 5
    Dernier message: 02/10/2006, 19h24
  5. Réponses: 2
    Dernier message: 22/09/2005, 10h05

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