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

LabVIEW Discussion :

Utilisation du langage C, comment créer une DLL


Sujet :

LabVIEW

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Utilisation du langage C, comment créer une DLL
    Bonjour,

    Je suis actullement en train d´essayer de faire appel a un programme en langage C avec Labview. J'utilise Call lybrary function. Le probleme est quíl me demande de creer un chemin vers une dll, puis-je avoir une aide?

    Merci

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Je pense que tu pourrais enregistrer ton programme en C sous forme".dll", que tu pourras ensuite appelé depuis Labview. Le chemin sera celui que tu auras choisi en enregistrant ton programme.dll

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    cette methode ne fonctionne pas

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    c'est que je n'ai pas bien compris ce que tu voulais faire

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    C´est assez simple, je cree un programme sur labview a l´aide de "Call function librery node".

    Ensuite je cree un lien path vers une dll qui charge un programme C.

    Voila le programme,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* Call Library source file */
    
    #include "extcode.h"
    
    void DisplayHelloFromDLL(int32_t frage, int32_t antwort);
    
    void DisplayHelloFromDLL(int32_t frage, int32_t antwort)
    {
    antwort=frage*3;
    }
    il est tres simple ,or le programme indique qu´une erreur a extcode.
    Est ce une bonne methode pour utiliser c sur labview?
    Images attachées Images attachées  

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Correction
    Excusez moi voila la bonne image:
    Images attachées Images attachées  

  7. #7
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Hello,

    L'intégration du code C dans Labview est soumis à tout un tas de règles de codage pour pouvoir être gérer.
    Je te conseille de regarder la doc ( Using external code with Labview) . Elle est dispo sur le site de NI.

    Tout autre chose: je n'ai jamais vu l'intérêt d'intégrer du code C à Labview car il est généralement plus rapide de réécrire le code au format LV que de l'intégrer...

    a+

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta reponse, j´ai deja essayer de faire le premier exemple du fichier
    pdf "Using External Code im Labview".

    Voir exemple1 page 2-16 et commencement a partir de la page 2-6.

    J'ai créé le projet et voilà mon code :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    /* Call Library source file */
    
    #include <stdio.h>
    
    extern ´C´ {
    
    long avg_num(float a[], long size, float *avg);
    }
    long avg_num(float a[], long size, float *avg)
    {
    
    #include "extcode.h"
    
    long avg_num(float a[], long size, float *avg);
    
    long avg_num(float a[], long size, float *avg)
    {
    
    int i;
    float sum=0;
    if(a != NULL)
    {
    for(i=0;i < size; i++)
    sum = sum + a[i];
    }
    else
    return (1);
    *avg = sum / size;
    return (0);
    
    }
    }
    Mais je coince il m´indique cette erreur lorsque veux contruire la dll:

    --------------------Configuration: project - Win32 Debug--------------------
    Compiling...
    myshared.c
    C:\LabVIEW\EMUS_LaufzLABVIEW\myshared.c(5) : error C2018: unknown character '0xb4'
    C:\LabVIEW\EMUS_LaufzLABVIEW\myshared.c(5) : error C2018: unknown character '0xb4'
    C:\LabVIEW\EMUS_LaufzLABVIEW\myshared.c(5) : error C2054: expected '(' to follow 'C'
    C:\LabVIEW\EMUS_LaufzLABVIEW\myshared.c(12) : fatal error C1083: Cannot open include file: 'extcode.h': No such file or directory
    Error executing cl.exe.

    project.dll - 4 error(s), 0 warning(s)
    Pour information, j´utilise C car je dois faire 2 boucles for de 1024 et de 2048
    ce qui me fait 2097152 boucles. Malheuresement cela ralentit enormément le processus de Labview.

  9. #9
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Hello,

    As tu fait un copier-coller?
    A priori, le premier probleme viendrait de la quote de 'C' qui n'est pas la vraie quote ( le caractere ' 0XB4 au lieu de ' 0x27).
    A voir pour la suite.

    a+

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci j´ai enfin reussi.

    Il ne faut surtout pas oublier d´enregistrer les header .h du dossíers cintools vers le dossier du projet.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/09/2008, 15h09
  2. [Lazarus] Comment créer une DLL avec Lazarus
    Par rajawi00 dans le forum Lazarus
    Réponses: 1
    Dernier message: 19/07/2007, 13h49
  3. Comment créer une dll à parti d'un programme en C
    Par laetous dans le forum Windows
    Réponses: 5
    Dernier message: 02/09/2006, 11h05
  4. [VB6]comment créer une dll
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/04/2006, 14h32
  5. Comment créer une dll Win32 sous Delphi ?
    Par Mickey.jet dans le forum Langage
    Réponses: 8
    Dernier message: 16/06/2005, 15h38

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