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 :

Import DLL - Erreur HRESULT 0x8007000B


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Points : 34
    Points
    34
    Par défaut Import DLL - Erreur HRESULT 0x8007000B
    Bonjour,

    Je souhaite utiliser une DLL développé en Delphi dans un projet en C# pour Smart Device.

    Voici le code de la DLL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    library Project1;
     
    uses
      SysUtils,
      Classes,
      Dialogs;
     
    {$R *.res}
     
    function Somme(A, B: Integer): Integer; cdecl;
    begin
      Result := A + B;
    end;
     
     
    exports
    Somme;
     
    begin
    end.

    Voici l'appel et l'utilisation de la DLL dans le projet C# pour Smart Device

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [DllImport("Project1.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Winapi, EntryPoint = "Somme")]
            private static extern int Somme(int a, int b);
     
    private void Form1_Load(object sender, EventArgs e)
    {
            int t = Somme(1, 5);
            MessageBox.Show(t.ToString()); //je souhaite vérifier le résultat !
    }
    Lorsque je lance l'application sur le PC de bureau (Win 7) j'ai l'erreur HRESULT 0x8007000B - Tentative de chargement d'un programme de format incorrect. Et quand je lance sur le terminal (Windows CE 6.0) j'ai l'erreur "Can't find PInvoke DLL 'nomdll.dll'"

    J'ai vu sur internet un problème d'incompatibilité 32b/64b ?! J'ai vérifié et la DLL est compilé en 32bits et l'exécutable aussi....

    Sincèrement je suis un petit peu perdu.

    Je vous remercie d'avance pour votre aide pour solutionner mon problème.


    Edit : Quand j'exécute la commande (dans Visual Studio 2008 Command Prompt) : corflags C:\min_chemin\mon_fichier.exe /32BIT+
    cela fonctionne sur mon PC.

    Par contre toujours la même erreur sur le terminal : "Can't find PInvoke DLL 'nomdll.dll'"

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Le problème sur le PC est résolu quand j'exécute la commande (dans Visual Studio 2008 Command Prompt) : corflags C:\min_chemin\mon_fichier.exe /32BIT+

    Je ne peux pas le configurer par défaut en X86 car dans le gestionnaire de configuration je n'ai que "Any CPU", du moins pour un projet Smart Device... Assez étrange :/.

    Par contre, toujours ce problème de PInvoke quand je le lance sur la machine

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Bon j'ai en parti trouvé une explication concernant l'erreur "Can't find PInvoke DLL 'nomdll.dll'"



    J'ai utilisé ce tutoriel : http://lookinside.free.fr/delphi.php?WinCEpour compiler ma dll avec l'architecture arm et du coup cela se passe très très bien ! (Sur le terminal mobile et pas sur le PC bien entendu)



    Cela résout mon problème et clôt donc la discussion.

    -

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

Discussions similaires

  1. question de débutant sur l'import DLL
    Par pdgnr dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/04/2006, 21h26
  2. Pb import DLL
    Par tsp dans le forum C++
    Réponses: 6
    Dernier message: 15/03/2006, 14h58
  3. Réponses: 11
    Dernier message: 20/01/2006, 12h35
  4. Importation dll
    Par OjBarbare dans le forum MFC
    Réponses: 6
    Dernier message: 23/12/2005, 15h44
  5. Réponses: 18
    Dernier message: 10/12/2005, 01h19

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