La section qui suit décrit les problèmes courants que vous pourriez rencontrer lors de l'utilisation de l'Assistant Importer une bibliothèque partagée. Si les solutions suggérées ne vous apportent pas l'aide nécessaire, vous devrez probablement mettre au point la bibliothèque partagée.

L'assistant ne peut trouver aucune fonction

La liste Fonctions sur la page Sélectionnez les fonctions à convertir de l'Assistant Importer une bibliothèque partagée recense toutes les fonctions qui se trouvent dans le fichier de bibliothèque partagée que vous avez spécifié. Si aucune fonction ne s'affiche après l'analyse du fichier d'en-tête par l'assistant, vérifiez que le chemin d'accès à la bibliothèque partagée est correct et que la bibliothèque contient des fonctions.

L'assistant trouve des fonctions qu'il ne peut pas importer

L'assistant Importer une bibliothèque partagée répertorie toutes les fonctions dans le fichier de bibliothèque partagée que vous spécifiez, mais il ne peut importer que les fonctions qu'il peut correctement analyser à partir du fichier d'en-tête. Les mises en garde qui s'affichent lorsque vous sélectionnez une fonction dans la liste des Fonctions sur la page Sélectionnez les fonctions à convertir peuvent vous aider à déterminer les problèmes éventuels. Vérifiez que le fichier d'en-tête contient toutes les déclarations de fonction nécessaires. Chaque déclaration de fonction doit inclure la convention d'appel, le type de données de la valeur renvoyée et les paramètres définis. Pour corriger le fichier d'en-tête, vous pouvez éditer directement le fichier ou utiliser la page Configurez les chemins à inclure et les définitions de préprocesseurs de l'assistant pour ajouter les définitions de symboles.

L'exemple suivant de code de fichier d'en-tête ne compile fonctionA que si vous définissez WIN32 :

#ifdef WIN32 int functionA(int para); #endif

Si vous voulez que LabVIEW importe fonctionA, mais que le fichier d'en-tête ne définit pas WIN32, vous pouvez soit éditer directement le fichier d'en-tête pour qu'il définisse WIN32, soit définir WIN32 dans l'Assistant Importer une bibliothèque partagée. Pour définir WIN32 dans l'assistant, entrez WIN32 dans le champ Définitions de préprocesseurs sur la page Configurez les chemins à inclure et les définitions de préprocesseurs.

L'exemple de code suivant montre une autre fonction dans un fichier d'en-tête. Dans ce cas, vous n'avez pas défini NIAPI et LabVIEW ne peut donc pas reconnaître le symbole :

NIAPI int fonctionA(intpara);

Si vous voulez que LabVIEW importe la fonction, vous pouvez ajouter NIAPI=_stdcall au champ Définitions de préprocesseurs pour définir NIAPI.

L'assistant ne peut trouver aucune fonction déclarée

La liste Fonctions présente uniquement les fonctions qui apparaissent dans le fichier de bibliothèque partagée. Si le fichier d'en-tête contient des déclarations pour des fonctions qui ne se trouvent pas dans le fichier de bibliothèque partagée, l'assistant n'indique pas ces fonctions. Pour afficher toutes les fonctions déclarées dans le fichier d'en-tête, qu'elles existent ou non dans le fichier de bibliothèque partagée, cochez l'option Le fichier de bibliothèque partagée ne se trouve pas sur l'ordinateur local sur la page Sélectionnez la bibliothèque partagée et le fichier d'en-tête de l'assistant. L'assistant dresse alors la liste de toutes les fonctions déclarées dans le fichier d'en-tête lorsque vous revenez à la page Sélectionnez les fonctions à convertir. N'oubliez pas de décocher cette option avant de générer les VIs wrapper.

L'assistant ne parvient pas à trouver les fichiers d'en-tête imbriqués

Si le fichier d'en-tête que vous spécifiez contient d'autres fichiers d'en-tête, vous devez fournir les chemins vers les fichiers imbriqués dans le champ Chemins à inclure de la page Configurez les chemins à inclure et les définitions de préprocesseurs de l'assistant. Si vous ne spécifiez pas les chemins à inclure pour les fichiers d'en-tête imbriqués, l'assistant ne peut pas analyser correctement le fichier d'en-tête.