Enum fonction dll

Bonjour a tous,
Je souhaiterais pouvoir recuperer la liste des fonctions accessibles d'une DLL (en l'occurence faite en CVI) dynamiquement.
Malgré toutes mes recherches sur le forum et sur le net, je n'ai pas trouvé de solution
Je suis parti de l'exemple fourni que ni.com http://www.ni.com/example/31151/en/
SimpleDLL.dll à une fonction : int ShowMyNumberAndString (int number, char* string) 
ce que je voudrais c'est pouvoir recuperer le nom de cette fonction (les parametres seraient un plus) par code (en utilsant cvi)
je pensais qu'en utilisant la fonction EnumResourceNames mais non, cela ne fonctionne pas
Si quelqu'un a une idée je suis preneur
merci
cordialement

Bonjour,
Dans un premier temps, est-ce un appel implicite ou explicite à votre DLL ?
Si c'est un appel explicite, il faudra sûrement faire appel à la Win32 API, car il n'y a pas de fonction disponible de ce type dans CVI
Bien cordialement,
Jérôme Henrion | NIF - Application Engineer | PXI Captain
Certified LabVIEW Developer

Similar Messages

  • Appel d'une fonction Dll avec un tableau de long en parametre

    Je dois communiquer sous labview avec un DLL comportant de fonction importante definie ainsi
    long DLLCALL DLL_Read( long Array[]);
    long DLLCALL DLL_WRITE( long Array[]);
    ces deux fonction prennent en parametre un tableau de 30 long. ...
    je ne sais comment configurer sous labview l'appelt à ces deux fonctions?
    quelqu'un peu m'aider (en français S.V.P)

    Bonjour,
    Pour passer un tableau de données de type long d'une DLL sous LabVIEW, vous devez configurer le noeud d'appel "Appeler une fonction d'une DLL" de la manière suivante:
    * function name = FuncName
    * parameter = arg1
    * type = array
    * data type = signed 32-bit integer
    Le prorotype équivalent est: void FuncName (long *arg1).
    Vous trouverez de nombreuses informations sur l'intégration des DLLs dans LabVIEW au lien ci-dessous:
    * Integrating DLLs
    http://zone.ni.com/devzone/devzone.nsf/webcategories/E2A99E7E10D5725D862567AC004F0A53
    Bonne continuation.
    Matthieu Gourssies
    National Instruments France

  • Lire la valeur retournée par une fonction (DLL) dans Pass/Fail test

    Bonjour,
    comme le titre l'indique je charche à tester une fonction en l'appelant d'une DLL (en C) en utilisant le Pass/Fail test. La fonction retourne la somme entre deux entier x et y.
    Quel sont les étapes à suivre et surtout comment je peux récupérer la valeur retournée et faire un teste sur elle!!
    Que dois-je écrire dans la rubrique "Data Source"...
    Vous trouvez ci-joint une idée de ce que j'ai fait..
    merci pour votre réponse
    Pièces jointes :
    PassFail.JPG ‏94 KB

    La question n'est pas très claire...
    Disons que si le but est de vérifier si la valeur est entre certaines bornes ex: 10<x<15 ou x<20 par exemple, alors il faut utiliser un "numericlimit test" 
    Pour réutiliser une valeur (variable) dans TestStand, le plus simple est de l'assigner à une variable locale dans TestStand. (Même méthode qu'en haut mais remplacer l'expression par Locals.MaVariable )
    Rodéric L
    Certified LabVIEW Architect

  • Appel d'une dll avec un callback d'une autre fonctionappel d'une dll avec un callback d'une autre fonction

    Bonjour.
    J'ai une carte d"acquisition vidéo dont je souhaite réaliser les
    drivers sous labview. Une DLL est fournie avec le manuel SDK
    d'utilisation.
    Mais je coince à ce niveau :
    Register Draw callback function: RegisterDrawFun()
    API:
    int RegisterDrawFun(DWORD nport, DRAWFUN(DrawFun), LONG nUser)
    Parameters:
    DWORD nport Channel Index
    DRAWFUN(DrawFun) callback function
    LONG nUser user data
    Callback function explanation:
    void CALLBACK DrawFun(LONG nPort,HDC hDc,LONG nUser)
    nPort channel number
    hDc devide context of offscreen surface is similar to the DC of display window
    nUser user data
    Return Values:
    If the function succeeds, the return value is 0.
    Remarks:
    When the video is previewed with offcreen mode, the
    application call this function to get the device context of offscreen
    surface so that the application can draw lines, strings, rectangles on
    the surface of video.
    C'est le callback de la fonction "drawfun"  que je ne sais pas mettre
    en oeuvre. Et dans quelle DLL de windows ce trouve cette fonction car
    elle n'est pas dans la DLL fournie.
    Pourriez vous aussi me dire , comment obtient t'on le "handle" d'une
    valeur contenu dans un indicateur pour le donner en argument d'un appel à
    une DLL.
    Merci d'avance pour votre aide.
    Cordialement,
    MH.

    Salut,
    Tu dois utiliser un "Call Library Function Node".  Je ne saurais comment traduire en francais. 
    Ca se situe a l'interieur des fonctions de connectivite sous libraries et executables.
    Lorsque tu installes le "Call Library Function Node" sur ton diagramme, tu dois par-apres le configurer.
    Tu cliques (2x) sur l'icone et tu choisi la fonction dll auquel tu veux envoyer des valeurs.  Une fois choisi, tu peux joindre les parametres.

  • Paramètrer les fonctions d'un fichier dll.

    bonjour
    j'essai d'appeler un dll avec call library function node, j'ai besoin uniquement de faire une interface sur labview pour afficher des résultats acquis par une autre application. le problème se pose au niveau du paramètrage des fonctions du fichier dll, est-il possible de paramètrer uniquement les fonctions qui vont m'afficher les résultats souhaités ou il faut paramèter toutes les fonctions du fichier dll.
    merci

    Bonjour,
    Je crois avoir repondu a votre question ici:
    appel d'une fonction dll avec labview
    regards,
    Cyril Bouton
    Active LabVIEW Developper

  • Apple drivers for MS Windows (from BootCamp Bdon't work with Windows XP Pro

    Hello,
    I'm trying to run MS Windows XP Pro under Parallels on a Mac OS X
    (I also trying to run GNU/Linux Ubuntu)
    I want to fix some problems with keyboard... (not the good characters)
    I have download BootCamp and burn a Apple CD Driver
    Unfortunately I get the following message when I trying to install
    them on MS Windows under Parallels
    Numéro d'erreur : 0x80040707
    Description : Echec de l'appel de la fonction DLL :
    DASupport.WMIGetComputerModel
    L'assistant d'installation va maintenant se terminer.
    which means something like
    Error number : 0x80040707
    Description : faillure when calling DLL function
    DASupport.WMIGetComputerModel
    Installation will abord now
    Regards
    PS :
    see also
    https://launchpad.net/bugs/48632
    about GNU/Linux Ubuntu problems with Apple MacBook

    Post your question in the Boot Camp discussions: http://discussions.apple.com/forum.jspa?forumID=1165 or

  • Erreur active x teststand 2

    Bonjour,
    je réalise un programme de test sous teststand 2 et CVI7.1 qui permet de:
    - piloter un alimentation
    - dialoguer avec un boitier CAN
    - lire et ecrire des fichiers excel.
    J'ai écrit les fonctions dll sous cvi pour la gestion de l'alimentation, du dialogue CAN et des fichiers excel. Le programme tesstand réalise le sequencement et l'appel des fonctions ecrites sous cvi sous forme de dll. Cependant, auprès quelques bonnes executions, une erreur apparait sur les composantes active X (soit erreur -17502 ou -17702) et l'execution s'arrête. Tesstand est alors bloqué et un message me demande de redemarrer l'application. A quoi est du cette erreur et comment la corriger?
    Florence DELAUNEY
    SAFIR ETUDES
    [email protected]

    Hi,
    This link maybe of help
    http://digital.ni.com/public.nsf/allkb/901B5E1C33A102A18625671C007C501F
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • TestStand pointeur en valeur retournée

    Bonjour,
    je dois utiliser une fonction dll standard, qui renvoie une chaine de caratctères : Prototype C : char  * version();
    Vu qu'il n'y a pas de possibilité de récupérer un pointeur dans une valeur retournée, comment peut-on récupérer la texte dans un appel de fonction TestStand ?
    Merci pour votre aide.
    Jean-Marie.
    JMCe
    Solved!
    Go to Solution.

    TestStand does not currently support string return values because TestStand doesn't know how to deallocate the memory associated with the string. If you must call a function in a standard DLL that returns a string, you have a couple of options. Each of them requires you to write your own DLL.
    1. Write a wrapper function in a DLL that calls the string function. Your wrapper DLL must link to the standard DLL. For example,
    void VersionWrapper(char returnValue[], int bufferLength)
        char *versionString = version();
        if (versionString != NULL)
            strncpy(returnValue, versionString, bufferLength);
        // You must deallocate versionString here if necessary.
    2. Call the string function in TestStand manually specifying the return value as an integer. Write a conversion function in a DLL that converts the integer to a char pointer. For example,
    void ConvertIntToString(int returnValueFromTestStand, char returnValue[], int bufferLength)
        const char *returnValueString = (const char *)returnValueFromTestStand;
        if (returnValueString != NULL)
            strncpy(returnValue, returnValueString , bufferLength);
        // You must deallocate returnValueString here if necessary.
    Note: If the string function in the standard DLL is exported with a C++ decorated name, the function will not appear in the function list in TestStand and you cannot use option 2.

  • Appel de fonction dans un dll

    Bonjour,
    Je souhaite appeler une fonction coder en c++. Pour celà, j'utilise une dll générer avec Visual C++ 6 et j'utilise labview 8.0.
    Je me sert du manuel suivant http://www.ni.com/pdf/manuals/370109b.pdf .
    Dans la partie
    Preventing C++ Name Decoration
    je n'ai pas compris comment comment éditer la partit "extern c"

    Bonjour
    Je ne comprend pas bien le problème.
    Avez vous des difficultés pour la création ou  l'appel de la dll?
    Kamal
    NI France

  • Erreur 6 à l'exécution de plusieurs fonctions de la DLL "nicaiu.dll" DAQmx

    Bonjour,
    Une application sous VB6 a été développée afin d'utiliser la carte DAQmx (DAQ6250) via la dll "nicaiu.dll".
    L'exécution des fonctions pas à pas s’effectue correctement.
    Le problème intervient lors de l'exécution d'une traite.
    par exemple:
    a: Call DAQmxErrChk(DAQmxCreateTask("", Task))
    b: Line = DEVICE & "/ai" & Channel
    c: Call DAQmxErrChk(DAQmxCreateAIVoltageChan(Task, Line "", DAQmx_Val_RSE, -10, 10, DAQmx_Val_Volts, ""))
    Une erreur 6 (dépassement de capacité) intervient systématiquement à l'exécution de la ligne suivant
    La fonction "DAQmxCreateTask" soit sur la ligne b dans l'exemple ci-dessus.
    Merci de votre aide
    RD

    Bonjour,
    L'erreur 6 correspond dans Visual Basic 6.0 à un dépassement de tableau ou "overflow". Si l'erreur se produit à la ligne b de votre exemple, c'est sans doute que le résultat de la concaténation est trop grand pour être rangé dans la variable "Line".
    Vérifiez que la variable "Line" n'est pas déclarée comme chaîne de caractère de longueur fixe (Dim Line As String * ). Vérifiez également le contenu de la variable "channel" lorsque l'erreur se produit. Vous pouvez également tester votre exemple en affectant un nom de voie de manière statique.
    Quoiqu'il en soit, d'après les informations que vous me communiquez, l'erreur n'est pas liée aux pilotes NI-DAQ. Vous pouvez vous en assurer en récupérant le code d'erreur retourné par les fonctions DAQmx.
    Sincères salutations.

  • Problème fonction externe DLL lors du lancement d'un executable

    Bonjour à tous,
    J'ai créé un installeur qui génére mon application sous forme d'éxécutable. L'installeur et l'éxécutable fonctionne parfaitement sur certains PC. Par contre sur d'autres PC lors du lancement de l'application j'ai le message d'erreur suivant qui apparaît : 
    À noter que c'est le même installeur et le même éxécutable qui sont utilisés. La DLL est bien présente. Je n'ai pas accès aux fonctions de la DLL donc je ne sais pas comment elles sont rédigés.
    Quelqu'un a-t-il déjà rencontré ce problème? Il faut que je puisse faire fonctionner cette application sur tout nos PC.

    Bonjour,
    Il semblerait que ton application ne trouve pas la DLL. Pourrais tu donner quelques détails supplémentaires qui pourraient avoir leurs importance en comparant les cas qui fonctionnent et ceux qui ne fonctionne pas. Donc si tu peux les configs qui marchent avec au moins les points suivants et les configs qui ne fonctionnent pas.
    - Système d'exploitation : Windows 7, Windows 8 ...?
    - Version 32 ou 64 bits de Windows ?
    - Origine de la DLL ? Installé avec ton exe ? driver a installer sur le PC ?...
    - Emplacement de la DLL. A côté de ton EXE ? ailleurs
    - Emplacement de ton exe : dossier spécifique, programs files ?
    - Les droits d'accès du compte utilisé sur le PC .
    Je demande ces différents points car sur ta capture, tu sembles utiliser Windows 8. Avec les Dll, les chemins et les droits d'accès ont leurs importance et suivant les versions de Windows, ca change pas mal.
    Dans tous les cas, tiens bon et ne te recogne pas la tête contre ton écran, on va trouver une solution
    .mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
    Maxime R.  
      CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
      CLAD - Certified LabVIEW Associate Developer   

  • Comment créer une dll sous labview avec plusieurs fonctions venant du même VI et possédant un tabcontrol ?

    Comment créer une dll sous labview avec plusieurs fonctions venant du même VI et possédant un tabcontrol ?

    Bonjour,
    L’utilisation d’une « commande d’onglet », ou « tabcontrol », ne pose pas de problème pour la définition d’une DLL à partir d’un VI.
    Selon la version de LabVIEW que vous utilisez, le processus de création de DLL sera différent.
    Si vous utilisez une version antérieure à la v8, vous pouvez vous reporter à ce lien : Construire une DLL avec LabVIEW 7.0.
    Sinon, vous devez enregistrer votre VI dans un projet, puis définir le connecteur de votre VI avec les paramètres d’entrées/sorties (cette opération est indépendante des différentes « commandes d’onglet » que vous avez pu implémenter).
    Sélectionnez, dans le projet les « spécifications de construction » dans le projet (via un click droit), pour créer une DLL. Dans la boite de dialogue qui s’ouvre alors, à l’onglet « fichiers source », vous pouvez ajouter votre VI parmi les « VIs exportés » et configurer, en fonction des E/S câblées sur le connecteur de votre VI, les fonctions contenues dans la DLL.
    J’espère que ces quelques éléments auront pu vous éclairer.
    Cordialement,
    Guillaume H.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Generer un dll qui contient plusieur fonction dans un seul VI avec labview

    Bonjours
    est ce qu'il ya une possibiliter de cree un seul VI qui contient plusieur fonction et l'integrer dans un seul Dll avec labview
    best regards

    Bonjour
    Merci Eric pour votre reponce ,mais peut être je n'ai pas bien expliqué
    la solution que je connais est que :
    je développe une seul fonction voulût dans un vi propre à elle
    si j'ai besoin de plusieurs fonction je doit développé plusieurs VI
    enfin j'intègre tous les vi dans un seul dll
    ma demande est : est ce que au lieu de développé beaucoup des VI , il y a une solution de rassemblé tous les fonctions dans un seul

  • Appel d'une dll avec un callback d'une autre fonction

    Bonjour.
    J'ai une carte d"acquisition vidéo dont je souhaite réaliser les drivers sous labview. Une DLL est fournie avec le manuel SDK d'utilisation.
    Mais je coince à ce niveau :
    Register Draw callback function: RegisterDrawFun()
    API:
    int RegisterDrawFun(DWORD nport, DRAWFUN(DrawFun), LONG nUser)
    Parameters:
    DWORD nport Channel Index
    DRAWFUN(DrawFun) callback function
    LONG nUser user data
    Callback function explanation:
    void CALLBACK DrawFun(LONG nPort,HDC hDc,LONG nUser)
    nPort channel number
    hDc devide context of offscreen surface is similar to the DC of display window
    nUser user data
    Return Values:
    If the function succeeds, the return value is 0.
    Remarks:
    When the video is previewed with offcreen mode, the application call this function to get the device context of offscreen surface so that the application can draw lines, strings, rectangles on the surface of video.
    C'est le callback de la fonction "drawfun"  que je ne sais pas mettre en oeuvre. Et dans quelle DLL de windows ce trouve cette fonction car elle n'est pas dans la DLL fournie.
    Pourriez vous aussi me dire , comment obtient t'on le "handle" d'une valeur contenu dans un indicateur pour le donner en argument d'un appel à une DLL.
    Merci d'avance pour votre aide.
    Cordialement,
    MH.

    Dupliqué >> http://forums.ni.com/t5/LabVIEW/appel-d-une-dll-av​ec-un-callback-d-une-autre-fonctionappel-d-une/m-p​...

  • Comment utiliser des fonctions d'une DLL via le menu "TOOLS"

    Bonjour,
    j'utilise un module fieldpoint dans TestStand, pour lequel j'ai créé une DLL.En dépannage (donc sequence "PAUSED"),je souhaite utiliser mes commandes en chargeant un panneau UIR. Cela fonctionne bien tant le test n'est pas lancé. Mais quand il est lancé, le panneau n'est plus dans le même thread et j'ai une erreur "unknown source position" pour une fonction de la dll. (ça ne concerne pas le panneau,mais une fonction déclenchée par un contrôle).
    MultiThreading ??
    Merci pour toute aide
    JMC
    JMCe

    Carlos,
    d'abord merci de me répondre en français, c'est trés sympathique.
    Je vais essayer d'être clair :
    J'utilise deux modules FieldPoint RS232, un pour des mesures, l'autre pour des relais. L'utilisation du FieldPoint avec CVI et TestStand est délicate car il n'y a qu'un serveur pour les deux, donc :
    Une dll de commande des relais appelle des fonctions dans une autre dll commune aux deux FieldPoint qui elle même appelle les fonctions de base de la librairie CVI. L'initialisation des FieldPoints se fait dans le SequenceFileLoad de la sequence principale.(c'est là qu'on retrouve tous les "Tags" à créer).
    La fonction qui charge le panneau de commande se trouve dans le même fichier dll que l'initialisation du FieldPoint.
    -> je lance cet
    te fonction du menu Tools sans sequence running : ça marche (le thread est le même)
    -> je lance cette fonction dans un step de type action, je lance la sequence : ça marche !! (le thread est le même)
    -> je mets la sequence en "Pause",je lance à partir du menu tools : ça plante (Fatal error:unknown source position le thread est différent).
    La fonction qui plante est une des fonction de la librairie CVI "FP_Read".
    J'ai essayé de charger le panneau dans l'initialisation mais c'est pareil.
    Est-ce plus clair ?
    Merci
    JMC
    JMCe

Maybe you are looking for