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

C# Discussion :

Insérer du C dans du C# ?!


Sujet :

C#

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Par défaut Insérer du C dans du C# ?!
    Bonjour,

    Je suis en train de créer un programme en C#.
    Pour des besoins particuliers, j'utilise du hardware branché en USB.
    Ce hardware possède une librairie .h ainsi que des bouts de codes en C.

    Comment puis-je me servir de cette librairie en C# afin d'utiliser mon hardware ?

    Merci pour vos lumières

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    tu compiles ton C pour en faire une assembly et tu utilises cette assembly en PInvoke, comme les API system

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Par défaut
    Merci.

    J'ai compilé mon C, j'ai un .dll.

    Dans mon code C#, d'après mes recherches sur google je dois mettre qqchose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [ DllImport( "Lib.dll", EntryPoint = ????, CallingConvention = ?? ) ]
    public static extern int ???(??);
    Mon problème : que dois-je mettre à le place des poins d'interrogations ?

    Merci.

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    je sais pas si EntryPoint et CallingConvention sont obligatoires.
    pour les derniers ???? c'est simplement le nom de la méthode que tu appelles et ses paramètres


    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     [DllImport("user32.dll")]
        public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Par défaut
    Ok parfait merci !

    Mais, lors de l'appel à la fonction, comment passer les bons paramètres ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static extern int test(char * name, flidev_t *data);
    En C# je ne vois pas comment appeler ma fonction test, vu que le pointeur (*) n'existe pas ?

    edit : pour illustrer ce que je veux dire :
    Erreur1 Les pointeurs et les mémoires tampons de taille fixe ne peuvent être utilisés que dans un contexte unsafe
    Erreur2 Le type ou le nom d'espace de noms 'flidev_t' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    bien sûr que les pointeurs existent en C#!!! c'est du code unsafe.après, y a peut-être moyen de passer des types référencés, p-e que ca marche.
    à toi de tester, j'ai toujours été nul en C/C++ ^^

Discussions similaires

  1. [CR8.5] Ne peut pas insérer de carte dans un rapport
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 14/06/2004, 22h07
  2. Insérer un fichier dans une page web
    Par Mad666 dans le forum ASP
    Réponses: 6
    Dernier message: 05/05/2004, 11h22
  3. insérer une date dans une table mssql
    Par ericmart dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/01/2004, 10h37
  4. insérer des images dans une bd postgresql
    Par ephet dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/01/2004, 09h18
  5. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06

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