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 contenant des objets ActiveX , utilisez la fonction Automation Open avec le nœud de propriété et le nœud d'invocation.

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 de la bibliothèque ou chemin d'accès

    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.

  • Fil -

    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 fil de l'interface utilisateur

      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 fil..

      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.

  • Fonction prototype-

    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.

    • Effacer le paramètre sélectionné-

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

    • Déplacer le paramètre sélectionné vers le haut un-

      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é vers le bas un-

      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écifiel'utilisation du 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.
        • Passez..

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

      • Tableau : spécifiel'utilisation du 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 transmettez une chaîne de caractères dont la taille est inférieure à la taille minimale, LabVIEW agrandit la taille de la chaîne de caractères jusqu'à ce qu'elle atteigne 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écifiel'utilisation du type de donnéesChaîne .
        • Format de la chaîne : spécifiele format de la 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.

      • Forme d'onde : spécifiel'utilisation du type de données Forme d'onde. 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 forme d'onde unique, spécifiez Dimensions à 0. 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.
      • Forme d'onde numérique : spécifiel'utilisation du type de données Forme d'onde numérique.
        • Dimensions-

          Spécifie les dimensions du paramètre.

          Spécifiez Dimensions à 0 si le paramètre est une forme d'onde numérique unique. 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écifiel'utilisation du type de données Données numériques.
        • Dimensions-

          Spécifie les dimensions du paramètre.

          Spécifier Dimensions à 1 si le paramètre est un tableau de données 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écifiel'utilisation du type de données ActiveX.
        • Type de données-

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

      • Adapt to Type-Spécifiel'utilisation du type de donnéesAdapt to Type.
        • Format des données : spécifiele format des données sélectionnées dans le champ Type .
          • Allow Resize-

            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 Constant contient une coche car vous ne pouvez pas redimensionner un paramètre constant.
            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 l'utilisation du 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.
    • Constant..

      Indique si le paramètre est une constante.

  • Fonction prototype-

    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éserve -

    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.

  • Non-réserve-

    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.

  • Abort-

    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.

  • Fonction prototype-

    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 vérification des erreurs-

    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.

    • Handicapés-

      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.

  • Fonction prototype-

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

Informations associé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