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 :

Adaptation d'un programme C 32 bits en 64 bits


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Par défaut Adaptation d'un programme C 32 bits en 64 bits
    Bonjour,

    Je poste parce que j'ai essayé pleins de choses, et je n'arrive pas à poursuivre mon projet. Voici mon problème :

    Je dois adapter un programme C compatible Windows 32 bits, pour qu'il s'exécute sur Windows 64 bits. Je compile dans Visual Studio 2010, et utilise plusieurs librairies telles que sqlite3 et zlib notamment ainsi que des dll maison, que j'ai bien compilées en 64 bits pour que ça fonctionne.
    Actuellement, mon programme en 32 bits s'exécute correctement sur ma VM 64 bits (normal). Je pourrais laisser les choses comme ça (vu que le 32 bits fonctionne sur le 64), mais il faut vraiment que je l'adapte.
    J'ai effectué les modifications en rapport avec le registre (clés au bon endroit), mais sûrement que dans le code il faut que je modifie d'autres choses.

    Quand je précise dans Visual Studio que je veux compiler en 64 bits (machine cible et gestionnaire de configuration), le programme me met une erreur "L'application n'a pas réussi à démarrer correctement (0x000007b) Cliquez sur OK pour fermer l'application".
    Après quelques recherches, j'ai vu que c'était en rapport avec 32/64, et éventuellement des dll qui ne sont pas en 64, mais je ne sais pas lesquelles.

    J'espère avoir été assez claire et précise sur mon souci. Merci à tous ceux qui auraient quelques solutions à m'apporter.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 495
    Par défaut
    Bonjour et bienvenue,

    Obtiens-tu réellement « 0x000007b » ou s'agit-il en fait de « 0xc000007b » ?

  3. #3
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Par défaut
    C'est 0xc000007b effectivement...

  4. #4
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Par défaut
    Après d'autres essais (solutions proposées sur Internet), et encore quelques recherches, j'ai finalement comparé le déroulement de l'exécution de la release du programme dans Visual Studio, entre les deux versions 32 bits et 64 bits. Et il y a des différences au niveau des DLL chargées !

    Notamment celles-ci :

    - advapi32.dll
    - sechost.dll
    - rpcrt4.dll
    - sspicli.dll
    - cryptbase.dll


    Ces Dll existent pourtant dans le répertoire C:\Windows\System32\ !

    Je ne comprends pas pourquoi elles ne sont pas chargées, alors que je n'ai rien changé au code...

    Peut-être cette problématique serait plus simple pour m'aider à comprendre..

    Anyone ?

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tu es bien sur un windows 64 bits?

  6. #6
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Par défaut
    Bonjour,

    Oui je suis bien sur Windows 7 64 bits. J'ai un peu plus d'infos :

    J'ai utilisé dependency walker et j'ai ComCTL32.dll qui est utilisée en x86 alors que je l'ai bien en x64...


    Mon problème est bien résumé ici :

    http://stackoverflow.com/questions/24148196/incorrect-comctl32-dll-is-loaded-after-porting-a-project-from-win32-to-x64-platf


    Mais même en modifiant les propriétés de mon fichier manifest, j'ai toujours une erreur "côte-à-côte".

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

Discussions similaires

  1. Adaptation d'un programme au 64 bit
    Par nibledispo dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/10/2014, 18h45
  2. Réponses: 3
    Dernier message: 18/02/2012, 03h05
  3. Adaptation d'un programme C# en ASP.net
    Par cbr954 dans le forum ASP.NET
    Réponses: 14
    Dernier message: 26/03/2010, 17h50
  4. Programme compilé en 32 bits ou 64 bits
    Par oranoutan dans le forum C
    Réponses: 30
    Dernier message: 10/05/2007, 16h14
  5. Un programme en assembleur qui indique le bit de parité
    Par bsamah dans le forum Assembleur
    Réponses: 3
    Dernier message: 21/02/2006, 13h32

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