le 02-10-2015 06:35 AM
Bonjour a tous,
j'ai un soucis lors de l'exécution de mon programme avec CVI lorsque j'utilise une librairie statique en C compilée avec Visual Studio. Est ce possible de trouver une alternative pour pouvoir utiliser cette librairie sous CVI, en passant par une DLL par exemple ?
Merci pour vos réponse !
le 02-10-2015 11:28 AM
Bonjour,
La librairie statique compilée sous VS, tu as le code source?
J'imagine que non, sinon tu l'aurais déjà incrusté (le code source) dans ton projet CVI...
C'est quoi les soucis?
Quelles erreurs sont remontées?
le 02-11-2015 02:23 AM
Bonjour,
Merci pour votre réponse, non malheureusement je ne l'ai pas, effectivement, je me serais débrouillé pour pouvoir le compiler sous CVI. Le problème est qu'il n'accède pas à certaines librairies ou certaines définitions qui, je pense, sont propres à VS, voici les erreurs retournées par CVI :
2 Project link errors
Undefined symbol '__imp___iob' referenced in "rtsexe.lib".
Undefined symbol '__except_list' referenced in "rtsexe.lib".
rtsexe.lib etant la librairie que je souhaite intégrer à mon projet CVI. Je tiens à préciser que cette librairie est fonctionnelle sous VS.
le 02-11-2015 04:50 AM
ah..
à priori, ta bibliothèque est compilée pour être utilisée en dynamique.
Ci-joint un lien sur lequel je suis tombé en cherchant sur tes erreurs :
http://openclassrooms.com/forum/sujet/mon-programme-ne-fonctionne-que-sur-mon-pc-80980
J'ai pas tout lu dans ce lien, il y a peut-être d'autres infos qui pourraient t'intéresser.
02-11-2015 06:08 AM - modifié 02-11-2015 06:09 AM
J'ai laissé tomber l'idée d'essayer d'utiliser cette librairie, mais pour palier a ce problème je dois générer une dll d'un projet CVI. Et la ca coince, le projet en question contient une interface graphique, des librairires écrites sous CVI ansi que des librairires propres à CVI (fichier .fp). Ce que voudrait réussir a faire c'est de pouvoir tout englober dans ma dll pour pouvoir l'utiliser sous Visual Studio, comment procéder ?
le 02-11-2015 09:50 AM
là j'avoue que ça sort de mes compétences..
En tout cas, tout dépend des deux projets CVI et VS.
Y'a t'il des liens dynamiques à créer entre les deux?
Y'a t'il des gestions évènementielles dans les deux?
Des boucles asynchrones?
Après, j'imagine que LoadExternalModule() ça marche aussi sous VS? quoique je sais plus si c'est pas la version obsolète...
le 02-23-2015 02:43 AM
Bonjour,
Le fait d'utiliser une interface utilisateur ou des .fp ne pose pas de problème pour la création d'une DLL si tant est que les bons liens sont établis (de toute façon, c'est nécessaire pour la compilation). Selon les options de compilations, les fichiers .uir ou .fp seront intégrés à la DLL. Les diverses bibliothèques annexes seront aussi exportées à côté de la DLL.
L'appel depuis Visual Studio ne devrait alors pas poser de problème. Il faut seulement s'assurer que le run-time engine de CVI est installé sur la machine où est installé Visual.
Un vieux lien mais toujours d'actualité :
- http://www.ni.com/tutorial/7251/en/
Autre lien pour les appels de DLL utilisant une UIR :
- http://www.ni.com/example/26354/en/
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.