Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer une DLL qui exporte ses fonctions

4 réponses
Avatar
Albin
Bonjour, Je souhaite créer une DLL écrite en VB .NET 2003 qui exporte ses
fonctions. Lorsque je crée un projet de type "Library Class", j'obtiens bien
une DLL, mais si on l'observe avec "DUMPBIN MyDll.dll /EXPORTS", on voit
qu'aucune fonction n'est exportée. De fait, la DLL crée n'est utilisable avec
des logiciels tels que LabView par exemple.
Quelqu'un connait-il un moyen d'exporter des fonctions tel qu'on peut le
faire en C avec le mot EXPORTS dans le fichier MyDll.EXP ?

Merci pour votre aide.

4 réponses

Avatar
Patrice
Je pense que .NET expose les fonctions sous forme de classes éventuellement
utilisable à partir de COM mais pas sous forme de fonctions exportées
individuellement.

Voir peut-être la doc de LabView au cas où il proposerait d'autre méthode
d'interfacage mais sinon il faudra utiliser un langage de la famille C (ou
peut être simplement créer en Managed C++ une DLL qui se contentera
d'exporter des fonctions qui appelleront les "vraies" fonctions implantées
sous forme d'une classe managée VB.NET).

Bonne chance.

--
Patrice

"Albin" a écrit dans le message de news:

Bonjour, Je souhaite créer une DLL écrite en VB .NET 2003 qui exporte ses
fonctions. Lorsque je crée un projet de type "Library Class", j'obtiens
bien
une DLL, mais si on l'observe avec "DUMPBIN MyDll.dll /EXPORTS", on voit
qu'aucune fonction n'est exportée. De fait, la DLL crée n'est utilisable
avec
des logiciels tels que LabView par exemple.
Quelqu'un connait-il un moyen d'exporter des fonctions tel qu'on peut le
faire en C avec le mot EXPORTS dans le fichier MyDll.EXP ?

Merci pour votre aide.


Avatar
Albin
Patrice,
Merci pour ta réponse. Le problème est que j'ai une ribembelle de programmes
qui attentent de vraies DLL. Ces programmes sont écrits en C, Delphi, VB6,
LabView et je dois en oublier. Je ne peux pas tout réécrire, tu l'auras
compris. Je suis déçus de voir que Microsoft Lui-Même ne supporte pas cette
technologie des DLL tant éprouvée sur un produit phare comme VB.NET.
reMerci en tout cas.

A présent, mon souhait est que Microsoft réponde.

Albin.

"Patrice" a écrit :

Je pense que .NET expose les fonctions sous forme de classes éventuellement
utilisable à partir de COM mais pas sous forme de fonctions exportées
individuellement.

Voir peut-être la doc de LabView au cas où il proposerait d'autre méthode
d'interfacage mais sinon il faudra utiliser un langage de la famille C (ou
peut être simplement créer en Managed C++ une DLL qui se contentera
d'exporter des fonctions qui appelleront les "vraies" fonctions implantées
sous forme d'une classe managée VB.NET).

Bonne chance.

--
Patrice

"Albin" a écrit dans le message de news:

> Bonjour, Je souhaite créer une DLL écrite en VB .NET 2003 qui exporte ses
> fonctions. Lorsque je crée un projet de type "Library Class", j'obtiens
> bien
> une DLL, mais si on l'observe avec "DUMPBIN MyDll.dll /EXPORTS", on voit
> qu'aucune fonction n'est exportée. De fait, la DLL crée n'est utilisable
> avec
> des logiciels tels que LabView par exemple.
> Quelqu'un connait-il un moyen d'exporter des fonctions tel qu'on peut le
> faire en C avec le mot EXPORTS dans le fichier MyDll.EXP ?
>
> Merci pour votre aide.





Avatar
Mehdi
On Fri, 24 Mar 2006 02:27:01 -0800, Albin wrote:

Merci pour ta réponse. Le problème est que j'ai une ribembelle de programmes
qui attentent de vraies DLL. Ces programmes sont écrits en C, Delphi, VB6,
LabView et je dois en oublier. Je ne peux pas tout réécrire, tu l'auras
compris. Je suis déçus de voir que Microsoft Lui-Même ne supporte pas cette
technologie des DLL tant éprouvée sur un produit phare comme VB.NET.



Pour le cas particulier de Labview, il est possible d'utiliser des assembly
.NET directement (depuis Labview 7 en tout cas). Pour VB6 et sans doute
aussi Delphi, tu pourai exopser tes assembly sous forme d'objects COM
(Labview devrait pouvoir y accéder également).

Pour accéder a tes assembly .NET depuis programme en C par contre la il te
faudra faire une DLL en Managed C++ qui wrappe les fonctions de tes
assembly et les exporte comme au bon vieux temps.
Avatar
Patrice
En complément à la réponse de Mehdi sur la façon de contourner ce problème,
cette technique est éprouvée mais sans doute considérée comme obsolète
notamment dans le cadre de .NET : par exemple difficulté de gérer les
versions, signatures à adapter en fonction du language, pas de découverte
possible, impossible de les structurer logiquement etc...

--
Patrice

"Albin" a écrit dans le message de news:

Patrice,
Merci pour ta réponse. Le problème est que j'ai une ribembelle de
programmes
qui attentent de vraies DLL. Ces programmes sont écrits en C, Delphi, VB6,
LabView et je dois en oublier. Je ne peux pas tout réécrire, tu l'auras
compris. Je suis déçus de voir que Microsoft Lui-Même ne supporte pas
cette
technologie des DLL tant éprouvée sur un produit phare comme VB.NET.
reMerci en tout cas.

A présent, mon souhait est que Microsoft réponde.

Albin.

"Patrice" a écrit :

Je pense que .NET expose les fonctions sous forme de classes
éventuellement
utilisable à partir de COM mais pas sous forme de fonctions exportées
individuellement.

Voir peut-être la doc de LabView au cas où il proposerait d'autre méthode
d'interfacage mais sinon il faudra utiliser un langage de la famille C
(ou
peut être simplement créer en Managed C++ une DLL qui se contentera
d'exporter des fonctions qui appelleront les "vraies" fonctions
implantées
sous forme d'une classe managée VB.NET).

Bonne chance.

--
Patrice

"Albin" a écrit dans le message de
news:

> Bonjour, Je souhaite créer une DLL écrite en VB .NET 2003 qui exporte
> ses
> fonctions. Lorsque je crée un projet de type "Library Class", j'obtiens
> bien
> une DLL, mais si on l'observe avec "DUMPBIN MyDll.dll /EXPORTS", on
> voit
> qu'aucune fonction n'est exportée. De fait, la DLL crée n'est
> utilisable
> avec
> des logiciels tels que LabView par exemple.
> Quelqu'un connait-il un moyen d'exporter des fonctions tel qu'on peut
> le
> faire en C avec le mot EXPORTS dans le fichier MyDll.EXP ?
>
> Merci pour votre aide.