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 :

paramètres de dll


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut paramètres de dll
    Bonjour

    A partir de mon code C#, je dois appeler une fonction d'une dll écrite en delphi win32. Dans la code delphi, la fonction utilise des paramètres de type PChar.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function Wizard_Configure(code : PChar; pathTofile : PChar) : Integer; stdcall;
    Coté C#, j'ai codé comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            [DllImport("Wizard.dll")]
            private static extern int Wizard_Configure(String code, String pathTofile );
    Mais quand j'essaye d'utiliser la fonction, je reçois un message d'erreur qui me dit

    Impossible de charger la DLL 'Wizard.dll': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
    Bien sur, la dll est dans le même dossier que mon exe.

    Quand j'avais fais un premier essai d'utilisation de dll win32, j'avais eu ce problème à cause de paramètres qui ne correspondaient pas.

    Serait-ce le type PChar transformé en String coté C# qui pourrait poser problème ?

    Papy !

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Je donne la solution enfin trouvée en utilisant un autre langage (delphi pour ne pas le nommer).

    Quand on essaye d'utiliser une dll A avec C#, si cette cette dll utilise une autre dll B et qu'elle ne la trouve pas, C# renvoie une exception DllNotFoundException mais en donnant le nom de la dll A. Ce qui induit en erreur quand on ne sait pas que A utilise B. Un test d'ulisation avec Delphi m'a renvoyé une erreur correcte en indiquant que c'est B qui n'était pas trouvée.

    Mon erreur a donc été de sortit la dll A de son contexte. Mais si C# m'avait renvoyé la bonne erreur, je n'aurais pas perdu autant de temps.

    ( c'est pas grave, je suis pas fâché pour autant )

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

Discussions similaires

  1. passage de paramètres à une dll c++
    Par free-lance dans le forum C#
    Réponses: 1
    Dernier message: 01/08/2008, 15h35
  2. Paramètres fonction DLL
    Par dim07 dans le forum Langage
    Réponses: 5
    Dernier message: 22/07/2008, 16h33
  3. Passage d'objet en paramètre de DLL
    Par nek_kro_kvlt dans le forum Langage
    Réponses: 22
    Dernier message: 22/07/2007, 19h50
  4. Passage de paramètres avec DLL Delphi
    Par GroovyBaby dans le forum C#
    Réponses: 2
    Dernier message: 08/03/2007, 14h51
  5. Réponses: 5
    Dernier message: 01/03/2007, 17h19

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