Cliquez avec le bouton droit sur un nœud Appeler une fonction d'une DLL et sélectionnez Configurer dans le menu local pour afficher cette boîte de dialogue.

Utilisez cette boîte de dialogue pour spécifier la bibliothèque, la fonction, les paramètres et la valeur renvoyée pour l'objet, et la convention d'appel dans le cas d'un appel à une bibliothèque partagée. Lorsque vous cliquez sur le bouton OK dans la boîte de dialogue, LabVIEW met à jour l'objet sur le diagramme. L'objet reflète alors les paramètres de la boîte de dialogue, affichant le nombre exact de terminaux et définissant les terminaux avec le type de données approprié.

Vous pouvez utiliser le nœud Appeler une fonction d'une DLL pour appeler du code écrit dans des langages de programmation textuels. Si vous souhaitez appeler une bibliothèque partagée qui contient des objets ActiveX, utilisez la fonction Automation Ouvrir avec le nœud de propriété et le nœud de méthode.

Cette boîte de dialogue comprend les éléments suivants :

Option Description
Fonction Utilisez l'onglet Fonction pour configurer la fonction Appeler une fonction d'une DLL.

Cet onglet comprend les éléments suivants :

  • Nom ou chemin de la bibliothèque

    Spécifie le nom ou le chemin de la bibliothèque que vous appelez. Ces deux techniques ne sont pas interchangeables et ont des conséquences différentes si vous distribuez ou déplacez vos VIs et vos applications. Reportez-vous à la rubrique Indication de l'emplacement des bibliothèques partagées sur le disque pour obtenir des informations complémentaires sur quand spécifier le nom ou le chemin d'une bibliothèque partagée.

    Pour rendre la référence indépendante de la plate-forme, utilisez le caractère générique *. Si vous utilisez le compilateur C++, les noms des fonctions dans la bibliothèque sont modifiés par un processus appelé décoration (ou name mangling en anglais) et deviennent dépendants de la plate-forme. Utilisez la directive d'export de fonction, extern "C"{}, du compilateur C++ dans votre fichier d'en-tête pour que le compilateur C++ n'introduise pas de dépendance de plate-forme dans les noms de fonction exportés avec un procédé appelé décoration (ou name mangling en anglais).

  • Spécifier le chemin sur le diagramme

    Détermine si vous pouvez entrer un Nom ou chemin de la bibliothèque sur le diagramme. Une fois cette option sélectionnée, chemin en entrée et chemin en sortie apparaissent sous forme de terminaux d'entrée et de sortie sur le connecteur du nœud. Lorsque vous cochez cette option, aucune des bibliothèques référencées dans la commande Nom ou chemin de la bibliothèque ne sera utilisée. Astuce : Vous pouvez utiliser l'entrée chemin en entrée pour supprimer de la mémoire une bibliothèque référencée antérieurement. Câblez un chemin vide ou non valide à l'entrée chemin en entrée pour supprimer de la mémoire une bibliothèque précédemment référencée par le nœud.

  • Nom de la fonction

    Spécifie le nom de la fonction que vous appelez. Remarque : Lorsque vous référencez une bibliothèque, la commande Nom de la fonction est remplie avec les noms de fonction trouvés dans cette bibliothèque. (macOS). Si la commande Nom de la fonction est vide, installez l'utilitaire nm pour afficher la liste des noms de fonction. L'utilitaire nm est installé avec Xcode, l'environnement de développement standard pour macOS. Vous pouvez télécharger Xcode gratuitement depuis le Mac App Store.

  • Thread

    Contrôle si la fonction Appeler une fonction d'une DLL passe du thread dans lequel le VI s'exécute actuellement au thread de l'interface utilisateur ou s'il continue dans le thread en cours d'exécution. La valeur par défaut est Exécuter dans le thread IU.

    • Exécuter dans le thread IU

      Spécifie que l'exécution de la fonction Appeler une fonction d'une DLL doit passer du thread actuel au thread de l'interface utilisateur. L'exécution dans le thread de l'IU d'une bibliothèque partagée construite par LabVIEW qui est chargée de manière dynamique en utilisant Spécifier le chemin sur le diagramme peut engendrer un crash de LabVIEW.

    • Exécuter dans n'importe quel thread

      Spécifie que l'exécution de la fonction Appeler une fonction d'une DLL continue sur le thread actuel qui exécute le VI. Vous devez vous assurer que plusieurs threads peuvent appeler la fonction simultanément. Remarque : Tous les appels de bibliothèques partagées construites avec LabVIEW doivent spécifier Exécuter dans n'importe quel thread. Si vous configurez la fonction Appeler une fonction d'une DLL en utilisant des bibliothèques partagées construites par LabVIEW et que sélectionnez l'option Exécuter dans le thread IU, il se peut que LabVIEW donne lieu à un crash et nécessite un redémarrage.

  • Convention d'appel

    Spécifie la convention d'appel de la fonction. La valeur par défaut est C.

    • stdcall (WINAPI)

      Contrôle si l'objet utilise la convention d'appel __stdcall.

    • C

      Contrôle si l'objet utilise la convention d'appel __cdecl.

  • Prototype de la fonction

    Affiche le prototype C de la fonction. Il s'agit d'un affichage en lecture seule.

Paramètres

Dresse la liste des paramètres actuels pour la fonction Appeler une fonction d'une DLL. Vous pouvez configurer la liste des Paramètres à l'aide des boutons suivants situés sur le côté droit de cette liste<B/>. Type de retour est un paramètre obligatoire que vous ne pouvez pas supprimer.

  • Paramètres

    Dresse la liste des paramètres actuels pour la fonction Appeler une fonction d'une DLL. Vous pouvez configurer la liste des Paramètres à l'aide des boutons suivants situés sur le côté droit de cette liste<B/>. Type de retour est un paramètre obligatoire que vous ne pouvez pas supprimer.

    • Ajouter un paramètre

      Ajoute un paramètre sous le paramètre sélectionné de la liste Paramètres.

    • Supprimer le paramètre sélectionné :

      Supprime le paramètre sélectionné de la liste Paramètres.

    • Déplacer le paramètre sélectionné d ' un niveau vers le haut

      Fait monter d'un niveau le paramètre sélectionné dans la liste de Paramètres, ce qui modifie l'ordre des paramètres dans le prototype de la fonction.

    • Déplacer le paramètre sélectionné d ' un niveau vers le bas

      Fait descendre d'un niveau le paramètre sélectionné dans la liste de Paramètres, ce qui modifie l'ordre des paramètres dans le prototype de la fonction.

  • Paramètre actuel

    Vous permet de configurer les valeurs du paramètre sélectionné.

    • Nom—

      Spécifie le nom du paramètre.

    • Type

      Spécifie le type de données du paramètre.

      • Numérique — Spécifie qu'il faut utiliser le type de données numérique.
        • Type de données

          Spécifie le type de données exact sélectionné dans la commande Type.

          Remarque Si vous utilisez les types de données numériques Entier signé à taille de pointeur ou Entier non signé à taille de pointeur, la fonction Appeler une fonction d'une DLL s'adapte au système d'exploitation sous lequel elle s'exécute et renvoie des données de taille appropriée à la fonction de bibliothèque. Sur les plates-formes 64 bits, LabVIEW convertit ces types de données numériques en entiers 64 bits. Sur les plates-formes 32 bits, LabVIEW convertit les types de données numériques en entiers 32 bits.
        • Réussite

          Indique si vous voulez faire passer la valeur ou un pointeur sur la valeur.

      • Tableau — Spécifie qu'il faut utiliser le type de données Tableau.
        • Type de données

          Spécifie le type de données exact sélectionné dans la commande Type.

          Remarque Si vous utilisez les types de données numériques Entier signé à taille de pointeur ou Entier non signé à taille de pointeur, la fonction Appeler une fonction d'une DLL s'adapte au système d'exploitation sous lequel elle s'exécute et renvoie des données de taille appropriée à la fonction de bibliothèque. Sur les plates-formes 64 bits, LabVIEW convertit ces types de données numériques en entiers 64 bits. Sur les plates-formes 32 bits, LabVIEW convertit les types de données numériques en entiers 32 bits.
        • Dimensions

          Spécifie les dimensions du paramètre.

        • Format du tableau

          Spécifie le format de tableau à utiliser.

        • Taille minimale

          Indique la taille minimale d'un tableau 1D et alloue la quantité appropriée de mémoire. Vous pouvez entrer une valeur numérique ou, si vous configurez un paramètre entier dans la liste Paramètres, vous pouvez sélectionner le paramètre dans le menu déroulant. La valeur par défaut est aucun. Cette option n'est disponible qu'avec les pointeurs sur des données de tableau.

          Si vous passez une chaîne plus petite que la taille minimale en entrée, LabVIEW agrandit la taille de la chaîne jusqu'à ce qu'elle ait la taille minimale. Si vous passez une chaîne plus grande que la taille minimale en entrée, elle conserve sa taille. Si vous passez un tableau plus petit que la taille minimale en entrée, LabVIEW agrandit la taille du tableau jusqu'à ce qu'il ait la taille minimale. Si vous passez un tableau plus grand que la taille minimale en entrée, il conserve sa taille.
      • Chaîne — Spécifie qu'il faut utiliser le type Données chaîne.
        • Format de chaîne — Spécifie le format de chaîne à utiliser.
        • Taille minimale

          Indique la taille minimale d'un tableau 1D et alloue la quantité appropriée de mémoire. Vous pouvez entrer une valeur numérique ou, si vous configurez un paramètre entier dans la liste Paramètres, vous pouvez sélectionner le paramètre dans le menu déroulant. La valeur par défaut est aucun. Cette option n'est disponible qu'avec les pointeurs sur des données de tableau.

      • Waveform — Spécifie qu'il faut utiliser le type de données Waveform. Vous devez spécifier le type de données numérique exact dans le menu déroulant Type de données.
        • Type de données

          Spécifie le type de données exact sélectionné dans la commande Type.

        • Dimensions

          Spécifie les dimensions du paramètre.

          Si le paramètre est une seule waveform, spécifiez 0 pour Dimensions. Si le paramètre est un tableau de waveforms, spécifiez 1 pour Dimensions. LabVIEW ne supporte pas les tableaux de waveforms à plus d'une dimension.
      • Waveform numérique — Spécifie qu'il faut utiliser le type de données waveform numérique.
        • Dimensions

          Spécifie les dimensions du paramètre.

          Spécifiez 0 pour Dimensions si le paramètre est une seule waveform numérique. Spécifiez 1 pour Dimensions si le paramètre est un tableau de waveforms numériques. LabVIEW ne supporte pas les tableaux de waveforms numériques à plus d'une dimension.
      • Données numériques — Spécifie qu'il faut utiliser le type de données Données numériques.
        • Dimensions

          Spécifie les dimensions du paramètre.

          Spécifiez 1 pour Dimensions si le paramètre est un tableau de waveforms numériques. Sinon, spécifiez 0 pour Dimensions. LabVIEW ne supporte pas les tableaux de données numériques à plus d'une dimension.
      • ActiveX — Spécifie qu'il faut utiliser le type de données ActiveX.
        • Type de données

          Spécifie le type de données exact sélectionné dans la commande Type.

      • Adapter au type — Spécifie qu'il faut utiliser le type de données Adapter au type.
        • Format des données — Spécifie le format des données sélectionnées dans la commande Type.
          • Autoriser le redimensionnement

            Spécifie si la bibliothèque est autorisée à redimensionner le paramètre. Dans certains cas, vous pouvez éviter de créer des copies supplémentaires en mémoire si vous n'autorisez pas le redimensionnement.

            LabVIEW désactive cette option si la case Constante est cochée car vous ne pouvez pas redimensionner un paramètre de constante.
            Remarque Cette option n'est disponible que si vous sélectionnez Interface avec les données dans le menu déroulant Format des données.
      • Pointeur de données d'instance — Spécifie qu'il faut utiliser le type de données Pointeur de données d'instance. Le pointeur de données d'instance fait référence à une allocation de la taille du pointeur que vous pouvez utiliser comme vous le voulez. Cette allocation est également passée à toutes les fonctions de callback sur l'onglet Callback.
    • Constante

      Indique si le paramètre est une constante.

  • Prototype de la fonction

    Affiche le prototype C de la fonction. Il s'agit d'un affichage en lecture seule.

Callbacks

Utilisez l'onglet Callbacks pour spécifier les fonctions à appeler à des temps prédéfinis. Les fonctions vous permettent d'initialiser, de mettre à jour ou de nettoyer les données de la DLL ou de la bibliothèque partagée de l'instance de la fonction Appeler une fonction d'une DLL que vous configurez. Chaque appel passe par le Pointeur de données d'instance du nœud Appeler une fonction d'une DLL pour lequel la fonction est configurée.

Remarque Vous ne pouvez pas utiliser l'onglet Callback pour passer des fonctions de callback comme paramètres à des fonctions de bibliothèque. Le nœud Appeler une fonction d'une DLL ne peut pas appeler directement des fonctions de bibliothèque nécessitant une fonction de callback comme paramètre, mais vous pouvez créer une bibliothèque wrapper pour implémenter de tels appels.

Cet onglet comprend les éléments suivants :

  • Réserver

    Spécifie la fonction à appeler au moment de la réservation pour chaque nœud et instance d'espace de données d'un VI réentrant.

  • libérer

    Spécifie la fonction à appeler au moment de l'annulation de la réservation pour chaque nœud et instance de l'espace de données d'un VI réentrant. Utilisez le callback Annuler la réservation pour enregistrer ou analyser les informations et effectuer des opérations de nettoyage.

  • Abandonner...

    Spécifie la fonction à appeler si vous abandonnez un VI alors qu'un appel de bibliothèque partagée ou de DLL est en cours. Si le nœud Appeler une fonction d'une DLL est configuré pour s'exécuter dans le thread de l'IU, le processus d'abandon n'est pas appelé. Utilisez le callback Abandonner pour enregistrer ou analyser les informations et effectuer des opérations de nettoyage.

  • Prototype de ces procédures

    Affiche le prototype C pour les appels de procédure définis par utilisateur. Chaque fonction passe un paramètre InstanceDataPtr. Ce paramètre vous permet d'initialiser et d'accéder aux données de cette instance du nœud Appeler une fonction d'une DLL qui peuvent être passées à n'importe quelle fonction appelée par le nœud. Le type du prototype peut être converti en tout type valide pour un type de pointeur, y compris une valeur numérique ou un pointeur réel vers une structure allouée par la bibliothèque partagée ou la DLL. Il s'agit d'un affichage en lecture seule.

  • Prototype de la fonction

    Affiche le prototype C de la fonction. Il s'agit d'un affichage en lecture seule.

Détection d'erreur

Utilisez l'onglet Détection d'erreur pour spécifier le niveau de détection d'erreur de la fonction Appeler une fonction d'une DLL.

Cet onglet comprend les éléments suivants :

  • Niveau de détection d ' erreur

    Contient les options suivantes :

    • Maximum

      Active le niveau maximal de détection d'erreurs pour la fonction Appeler une fonction d'une DLL. En plus des capacités de vérification des erreurs du niveau par défaut, le niveau Maximal force le nœud Appeler une fonction d'une DLL à renvoyer une mise en garde si la fonction appelée par la bibliothèque partagée ou DLL écrit au-delà de l'espace alloué pour la chaîne spécifiée ou le paramètre du tableau. Remarque : Sélectionner la commande Maximum sur l'onglet Détection d'erreur réduit la vitesse d'exécution et augmente l'utilisation de la mémoire par la fonction Appeler une fonction d'une DLL. Par conséquent, ne sélectionnez la commande Maximum que lorsque vous mettez au point la configuration de la fonction Appeler une fonction d'une DLL.

    • Par défaut :

      Active le niveau par défaut de détection d'erreurs pour la fonction Appeler une fonction d'une DLL. Le niveau par défaut de détection d'erreur permet à LabVIEW de s'occuper des exceptions non gérées qui se produisent au cours de l'exécution de la bibliothèque partagée ou de la DLL. Ce niveau de vérification des erreurs force le nœud Appeler une fonction d'une DLL à renvoyer une erreur si la Convention d'appel sélectionnée sur l'onglet Fonction ne correspond pas à celle de la fonction que vous appelez dans la bibliothèque partagée ou DLL.

    • Désactivé

      Désactive la détection d'erreur de la fonction Appeler une fonction d'une DLL. Désactiver la détection d'erreur pour la fonction Appeler une fonction d'une DLL optimise la vitesse d'exécution de cette fonction. Toutefois, certaines erreurs peuvent provoquer un arrêt anormal de LabVIEW. Avant de désactiver la détection d'erreur, assurez-vous que la fonction référencée par Appeler une fonction d'une DLL ne donne pas lieu à des exceptions non gérées.

  • Prototype de la fonction

    Affiche le prototype C de la fonction. Il s'agit d'un affichage en lecture seule.

Rubriques apparentées

Appel de bibliothèques partagées dans LabVIEW

Configurer le nœud Appeler une fonction d'une DLL

Mise au point des bibliothèques partagées et des appels de bibliothèques partagées

Appeler une fonction d'une DLL

Fonctions de gestionnaire LabVIEW