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 Forms Discussion :

FileLoadException Dll C++ / Appli C#


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut FileLoadException Dll C++ / Appli C#
    Bonjour à tous.

    Voici mon soucis, qui n'en ai pas totalement un.

    Nous avons un dll en C++ managed, qui est utiliser par notre WindowsForm. Jusque la pas de problème, l'intelisence fonctionne très bien tout est bien reconnu sans problème.

    Premier problème survenu à la première compil : BadImageFormatException

    après quelque recherche, nous trouvons qu'il faut lancer le build en x86 et non pas en anyCPU comme à la base.

    Bref nouvelle compil qui se passe bien mais au lancement de l'appli sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run(new Form1());
    --> FileLoadException

    au debut on pense au chemin d'accès mais rien n'y fait.

    Après plusieur recherche nous découvrons que sur une machine 32bit aucun problème pour lancer l'appli, par contre sur la machine ou le programme est développer(64 bit) pas moyen de lancé l'appli.

    Nous souhaitons savoir s'il y a un moyen de contourner ce problème ou si nous sommes obligés de faire 2 dll ( 1 pour le 32bit et l'autre pour le 64bit )


    merci pour vos réponse

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    oups je crois ne pas avoir poster au bon endroit, milles fois désolés merci de déplacer si le sujet n'est pas au bon endroit!

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 521
    Par défaut relecture
    après quelque recherche, nous trouvons qu'il faut lancer le build en x86 et non pas en anyCPU comme à la base.
    C'est bizarre pour du C++ managé. Pouvez-vous nous en dire plus ?
    Ne serait-ce pas dû à l'utilisation d'une librairie ou d'une autre dll native qui n'existe qu'en 32 bits ?

    L'explication la plus évidente est que vous avec votre code C# qui est compilé en AnyCPU et qui est donc 64bits sur une machine 64bits et qui n'aimera pas votre Dll [EDIT]32[/EDIT] bits.

    Moi, je verrais pourquoi le AnyCPU ne marche pas et tenterait de circonscrire le problème dans la Dll C++ managé compilée en AnyCPU.

    Si la librairie 32 bits qui met la grouille ne peut pas être circonscrite, utilisation d'une dll C non managé en wrapping de cette librairie.

    Méthode à l'arrache pour satisfaire les managers qui comprennent rien : compilez l'application en x86 et pas en AnyCPU.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    Bin en fait c'est la Dll qui doit être en 32bit, car c'était l'application windows form qui était en AnyCPU qu'on à passer en x86

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 521
    Par défaut
    FileLoadException
    Les traces ne donnent pas le nom du fichier qui pose problème ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    bin c'est la dll qui n'est pas charge par la machine 64bit, sinon elle se charge sans problème !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/08/2009, 19h29
  2. Réponses: 1
    Dernier message: 21/04/2007, 11h06
  3. Réponses: 6
    Dernier message: 20/10/2005, 21h36
  4. passage de pointeurs entre appli delphi et DLL c++
    Par e-teo dans le forum Langage
    Réponses: 1
    Dernier message: 13/10/2005, 21h46
  5. [Appli][Autre language]dll-contenant form
    Par flash dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2002, 14h18

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