Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  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 : 29
    Localisation : Maroc

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

    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 :
    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 :
    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 406
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 6 406
    Points : 15 057
    Points
    15 057

    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 : 29
    Localisation : Maroc

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

    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 du Club
    Inscrit en
    avril 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : avril 2005
    Messages : 76
    Points : 69
    Points
    69

    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 : 29
    Localisation : Maroc

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

    Par défaut

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

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •