Discussions au sujet des autres produits NI

cancel
Showing results for 
Search instead for 
Did you mean: 

dll cvi compatible .net

Solved!
Go to 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 Kudos
Message 1 of 4
(4,585 Views)

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 Kudos
Message 2 of 4
(4,563 Views)

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 Kudos
Message 3 of 4
(4,561 Views)
Solution
Accepted by topic author 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 Kudos
Message 4 of 4
(4,538 Views)