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

  1. #1
    Membre du Club
    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
    Points : 53
    Points
    53
    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 du Club
    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
    Points : 53
    Points
    53
    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 éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    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 du Club
    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
    Points : 53
    Points
    53
    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 éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

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

  6. #6
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    bin c'est la dll qui n'est pas charge par la machine 64bit, sinon elle se charge sans problème !

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    L'application C# est bien en x86 ?
    Pouvez-vous nous donner la valeur des propriétés de l'exception comme Data, Message ou HResult ?

  8. #8
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    Impossible de charger le fichier ou l'assembly 'RaceConAdminCommunication, Version=1.0.3853.13488, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. L’application n’a pas pu démarrer car sa configuration côte-à-côte est incorrecte. Pour plus d’informations, consultez le journal d’événements d’applications ou utilisez l’outil de ligne de commande sxstrace.exe. (Exception de HRESULT : 0x800736B1)
    en detail :
    System.IO.FileLoadException was unhandled
    Message=Impossible de charger le fichier ou l'assembly 'RaceConAdminCommunication, Version=1.0.3853.13488, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. L’application n’a pas pu démarrer car sa configuration côte-à-côte est incorrecte. Pour plus d’informations, consultez le journal d’événements d’applications ou utilisez l’outil de ligne de commande sxstrace.exe. (Exception de HRESULT : 0x800736B1)
    Source=RaceConnection-Admin
    FileName=RaceConAdminCommunication, Version=1.0.3853.13488, Culture=neutral, PublicKeyToken=null
    FusionLog=""
    StackTrace:
    à RaceConnection_Admin.Form1..ctor()
    à RaceConnection_Admin.Program.Main() dans F:\RaceConnection-Admin\RaceConnection-Admin\Program.cs:ligne 17
    à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    à System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
    à System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
    à System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
    à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
    à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
    à System.Activator.CreateInstance(ActivationContext activationContext)
    à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
    à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    à System.Threading.ThreadHelper.ThreadStart()
    InnerException: System.Runtime.InteropServices.COMException
    Message=L’application n’a pas pu démarrer car sa configuration côte-à-côte est incorrecte. Pour plus d’informations, consultez le journal d’événements d’applications ou utilisez l’outil de ligne de commande sxstrace.exe. (Exception de HRESULT : 0x800736B1)
    ErrorCode=-2147010895
    InnerException:
    si vous comprennez

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    A en croire cette "discussion",
    http://social.msdn.microsoft.com/for...-36a0b13ba0ca/
    Je pense qu'il faire des vérifications du côté des C-Runtime installées en SxS sur les machines.
    d’événements d’applications ou utilisez l’outil de ligne de commande sxstrace.exe. (Exception de HRESULT : 0x800736B1)
    sxstrace.exe est peut-être notre ami.

  10. #10
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    oui mais je connais pas ce machin la, je me renseigne

  11. #11
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    bon je me suis renseigné mais pas moyen de lancer le sxstrace pour avoir un log :s

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Vérifiez la version de la C-Runtime liée à votre dll et les versions installées sur les plateformes qui posent problème.
    Vraisemblablement, il n'y a pas la bonne sur ces machines.

  13. #13
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    bon je trifouille dans tous les sens mais rien à faire ni l'appli ni sxstrace ne fonctionne.

    c'est super frustrant !

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Et la vérification de la C-Runtime ?
    sxstrace utilise vraisemblablement la même C-Runtime que votre exe.
    Même problème, même punition.

  15. #15
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    béh oui mais justement j'ai tout repris les dernière version des ancienne y a rien qui change je déprime

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Je ne vous demande pas de mettre à l'arrache les C-Runtime mais vérifiez que la C-Runtime nécessaire à votre programme est correctement installé sur la plateforme d'exécution.
    Si ce n'est pas le cas, il faut lancer les packages d'installation (redistribuable) de celle-ci sur les machines d'exécution.

  17. #17
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    runtime version de la Dll c'est : v2.0.50727

    mais sur les machine je suis déjà en v10. et des brouettes

    à mon avis y a un truc qui m'échappe là

    je devrai le voir ou la version du runtime utilisé ?

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    runtime .Net != C-Runtime
    Avec ILDASM ou Reflector, non ?

  19. #19
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    je vais essayer je te tiens au jus merci de ta patience

  20. #20
    Membre du Club
    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
    Points : 53
    Points
    53
    Par défaut
    bon on a résolu le problème en passant l'apli en silverlight !

    Merci quand mê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