Construction d'un prototype de fonction
- Mise à jour2025-08-27
- Temps de lecture : 4 minute(s)
Pour créer une bibliothèque partagée à partir d'un langage de programmation textuel, vous devez construire un prototype de fonction dans LabVIEW et lui ajouter ensuite tous les détails sur le code. En laissant LabVIEW générer ce prototype de fonction, vous garantissez la validité de la syntaxe de base du code dans la bibliothèque partagée. Le fichier source prototype que vous créez est un fichier .c qui contient des déclarations en C pour les paramètres que vous voulez transmettre.
Effectuez les étapes suivantes pour construire un fichier source prototype, myshared.c.
- Ouvrez un nouveau VI vide et enregistrez-le sous le nom Moyenne du tableau. Cette fonction calculera la moyenne d'un tableau de valeurs.
- Ajoutez un nœud Appeler une fonction d'une DLL au diagramme.
- Faites un clic droit sur la fonction Appeler une fonction d'une DLL et sélectionnez Configurer dans le menu local pour ouvrir la boîte de dialogue Appeler une fonction d'une DLL.
- Laissez la commande Nom ou chemin de la bibliothèque vide.
- Entrez les spécifications générales suivantes :
- Tapez avg_num dans le champ Nom de la fonction.
- Sélectionnez la commande C dans le champ de Convention d'appel.
- Définissez la valeur renvoyée à l'aide des spécifications suivantes :
- Naviguez jusqu'à l'onglet Paramètres de la boîte de dialogue Appeler une fonction d'une DLL.
- Remplacez le nom par défaut dans la commande Nom de l'option type de retour par le nom erreur, plus descriptif.
- Sélectionnez Numérique dans le menu déroulant de Type.
- Sélectionnez Entier 32 bits signé dans le menu déroulant Type de données.
- Définissez le paramètre a à l'aide des spécifications suivantes :
- Cliquez sur le bouton Ajouter un paramètre à droite de la liste de paramètres.
- Remplacez le nom par défaut arg1 dans le champ Nom par le nom a, plus descriptif.
- Sélectionnez Tableau dans le menu déroulant Type.
- Sélectionnez Flottant 4 octets simple précision dans le menu déroulant Type de données.
- Sélectionnez Pointeur sur les données du tableau dans le menu déroulant Format du tableau.
- Définissez le paramètre taille à l'aide des spécifications suivantes :
- Cliquez sur le bouton Ajouter un paramètre à droite de la liste de paramètres.
- Remplacez le nom par défaut arg2 dans le champ Nom par le nom taille, plus descriptif.
- Sélectionnez Numérique dans le menu déroulant de Type.
- Sélectionnez Entier 32 bits signé dans le menu déroulant Type de données.
- Sélectionnez Valeur dans le menu déroulant Passer.
- Définissez le paramètre moyenne à l'aide des spécifications suivantes :
- Cliquez sur le bouton Ajouter un paramètre à droite de la liste de paramètres.
- Remplacez le nom par défaut arg3 dans le champ Paramètre par le nom moyenne, plus descriptif.
- Sélectionnez Numérique dans le menu déroulant de Type.
- Sélectionnez Flottant 4 octets simple précision dans le menu déroulant Type de données.
- Sélectionnez Pointeur sur la valeur dans le menu déroulant Passer.
- Assurez-vous que le champ Prototype de la fonction affiche la valeur renvoyée et les trois paramètres dans le bon ordre, comme suit : int32_t avg_num(float *a, int32_t taille, float *moyenne);
| Remarque La syntaxe que vous voyez dans le champ Prototype de la fonction est correcte d'un point de vue technique. Toutefois, le fichier .c généré par la fonction Appeler une fonction d'une DLL est plus précis car le premier paramètre est indiqué comme étant float a[]. |
- Cliquez sur le bouton OK pour enregistrer vos paramètres et fermer la boîte de dialogue.
- Vous constatez que l'icône Appeler une fonction d'une DLL se met à jour pour refléter les paramètres que vous avez définis.
- Faites un clic droit sur la fonction Appeler une fonction d'une DLL et sélectionnez Créer un fichier C dans le menu local.
- Enregistrez le fichier sous myshared.c.
| Remarque Dans cet exemple, vous utilisez un fichier source .c. Lorsque vous travaillez avec des bibliothèques C++ , remplacez l'extension du fichier source par .cpp. |
Empêcher la décoration de noms en C++
Utilisez la directive d'export de fonction du compilateur C++, extern "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) ; un exemple de code est représenté ci-dessous :
extern "C" { int32_t MyDLLFunction(int32_t nInput, uint32_t nOutput, void *arg1); }
int32_t MyDLLFunction(int32_t nInput, uint32_t nOutput, void *arg1)
{
/* Insert Code Here */
}
| Remarque Si vous désactivez la décoration C++ d'une fonction, le compilateur ne pourra pas créer de versions polymorphes de cette fonction. |
Une fois que vous avez construit le prototype de la fonction, finissez de remplir le fichier .c.