Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

dll cvi compatible .net

Résolu !
Accéder à la solution

Bonjour,

 

J'ai développé une dll sous cvi. Plusieurs fonctions de cette dll sont accessibles (par ex  :

int DLLEXPORT STDCALL FNET_ReadParameters(int count, unsigned char id[MAX_REFERENCE_DATAOBJECT], char dataRead[], unsigned char dataFormatted, double iTimeOut).

Mon client développe sous C# et veut utiliser cette DLL, mais pour cela elle doit être compatible .NET et à priori ce n'est pas le cas.

 

Comment puis je faire sans avoir à tout redevelopper, car il faut savoir que cette dll est également utilisée dans un autre projet CVI ainsi que dans un projet sous TestStand ? (D'ailleurs je ne veux pas avoir à tout réécrire car je ne connais pas du tout .NET)

 

Merci pour votre support

 

Cordialement

Vincent

 

0 Compliments
Message 1 sur 4
4 274 Visites

Bonjour,

 

Pour passer du monde non-géré (C) au monde géré (C#, VB.NET...), il faut créer un wrapper. Il s'agit d'une assembly .NET qui servira de "passerelle" entre le code de la DLL et le code appelant en C#. Pour ça on utilise souvent P/Invoke.

 

Cordialement,

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

0 Compliments
Message 2 sur 4
4 252 Visites

Bonjour

 

Merci pour votre retour.

Cela signifie qu'avec CVI (ou en C plus généralement) on ne peut pas faire d'application utilisable en .NET, du moins nativement. (il faut passer par un wrapper)

 

Donc cela se passe plutôt du coté utilisateur de la DLL ici en l'occurence le développeur C#, qui doit écrire un wrapper specifique pour cette DLL.

 

C'est bien cela ?

 

Cordialement

Vincent

0 Compliments
Message 3 sur 4
4 250 Visites
Solution
Accepté par l'auteur du sujet AfgVD

Le probleme est resolu.

il faut effectivment creer un wrapper dans C#. Celui ci redefini le prototype de la fonction en adaptant les types au format C#

 

ci joint un lien qui explique comment faire :

http://www.codeproject.com/Articles/9826/How-to-create-a-DLL-library-in-C-and-then-use-it-w

 

merci

0 Compliments
Message 4 sur 4
4 227 Visites