p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre régulier Avatar de anas.eh
    Profil pro
    Inscrit en
    février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : Maroc

    Informations forums :
    Inscription : février 2007
    Messages : 181
    Points : 91
    Points
    91

    Par défaut Erreur dans l'appel d'une fonction C++/CLI (DLL) par C#

    Salut,

    J'ai créé un DLL sans aucun problème, le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    extern "C" int __clrcall ToBinaryForm(ArrayList to_binary)
    {
    return 8;
    }
    J'ai mis le DLL avec le .exe, et dans C# le code que j'ai mis :

    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
     
    public partial class Form1 : Form
    {
    [DllImport("BinaryForm.dll")]
    public static extern int ToBinaryForm(ArrayList to_binary);
     
    public Form1()
    {
    InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
    ArrayList ar = new ArrayList();
    int i;
    i = ToBinaryForm(ar);
    MessageBox.Show(i.ToString());
    }
    }
    Je reçois l'erreur suivante :

    Additional information: Unable to find an entry point named 'ToBinaryForm' in DLL 'BinaryForm.dll'.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Inscrit en
    octobre 2003
    Messages
    6 410
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 6 410
    Points : 15 910
    Points
    15 910

    Par défaut

    nan mais je comprends pas trop en fait ...

    La "dll" que tu veux créer, c'est bien une assembly dotnet écrite en C++/CLI ?

    si oui, dans ce cas, tu as juste à la référencer dans ton projet C# pour l'utiliser

  3. #3
    Membre régulier Avatar de anas.eh
    Profil pro
    Inscrit en
    février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : Maroc

    Informations forums :
    Inscription : février 2007
    Messages : 181
    Points : 91
    Points
    91

    Par défaut

    Le DLL je l'ai créé par un projet C++ (premier code), j'ai mis le DLL avec le .exe de C#, mai ça n'a pas marcher.

    Comment référencer l'assembly, comment exporter une méthode C++/CLI ?

    En fait, je veux appeler une méthode que j'ai créée avec C++/CLI par C# comment je vais faire ?

  4. #4
    Membre régulier
    Inscrit en
    avril 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : avril 2005
    Messages : 76
    Points : 76
    Points
    76

    Par défaut

    Si tu ajoutes ta DLL via l'onglet broswe dans le menu d'ajout de référence la réference de ce projet sera rajoutée. Ensuite, il faut faire comme d'habitude, utiliser le namespace et faire appel à ta fonction.

  5. #5
    Membre régulier Avatar de anas.eh
    Profil pro
    Inscrit en
    février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : Maroc

    Informations forums :
    Inscription : février 2007
    Messages : 181
    Points : 91
    Points
    91

    Par défaut

    J'ai pu résoudre le prob, merci à vous tous .

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

Discussions similaires

  1. Erreur à cause de string dans l'appelle d'une fonction
    Par Bootax dans le forum JavaScript
    Réponses: 8
    Dernier message: 25/03/2009, 20h02
  2. Réponses: 2
    Dernier message: 26/04/2007, 09h00
  3. pb dans l'appel d'une fonction
    Par badboys206s16 dans le forum ASP
    Réponses: 3
    Dernier message: 04/07/2006, 08h32
  4. Réponses: 2
    Dernier message: 05/03/2006, 19h29
  5. Erreur a l'appel d'une fonction javascript
    Par linou dans le forum JavaScript
    Réponses: 4
    Dernier message: 10/03/2005, 11h16

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