OVH Cloud OVH Cloud

[DLL] VS2005 vs VS2003

3 réponses
Avatar
David Marec
bonjour,


toujours dans le cadre d'une intégration d'une DLL en C#, je dois
intégrer la DLL de mon précédent message en VS2003.

Elle s'intègre sans erreur dans la version 2005, mais est réfusée par
2003 :

"Impossible de trouver le point d'entrée dans la DLL"

J'ai compilé la DLL en 2003 sans plus de succès.


--
http://david.marec.free.fr

3 réponses

Avatar
Paul Bacelar
"David Marec" wrote in message
news:duh1cu$8ls$
bonjour,


toujours dans le cadre d'une intégration d'une DLL en C#, je dois intégrer
la DLL de mon précédent message en VS2003.

Elle s'intègre sans erreur dans la version 2005, mais est réfusée par 2003
:

"Impossible de trouver le point d'entrée dans la DLL"

J'ai compilé la DLL en 2003 sans plus de succès.


--
http://david.marec.free.fr



Ce n'est pas clair.

C'est une dll non-managée qui n'est pas accessible à un projet C# ou est-ce
l'assembly .NET qui n'est pas visible depuis du code natif ?


--
Paul Bacelar
MVP VC++
Avatar
David Marec
Paul Bacelar a écrit :

> [DLL]
>
C'est une dll non-managée



Euh, c'est une DLL écrite en C++ standard, qui utilise des fontions de
l'API WIN32.

qui n'est pas accessible à un projet C# ou est-ce
l'assembly .NET qui n'est pas visible depuis du code natif ?



...qui plante au premier appel d'une de ses fonctions à partir d'une
application écrite en C# compilée sous VS2003, mais qui fonctionne sans
mot dire à partir de la même application compilée sous VS2005.

--
http://david.marec.free.fr
Avatar
Paul Bacelar
"David Marec" wrote in message
news:dujfi8$fkv$
Paul Bacelar a écrit :

> [DLL]
>
C'est une dll non-managée



Euh, c'est une DLL écrite en C++ standard, qui utilise des fontions de
l'API WIN32.

qui n'est pas accessible à un projet C# ou est-ce l'assembly .NET qui
n'est pas visible depuis du code natif ?



...qui plante au premier appel d'une de ses fonctions à partir d'une
application écrite en C# compilée sous VS2003, mais qui fonctionne sans
mot dire à partir de la même application compilée sous VS2005.

--
http://david.marec.free.fr






C'est que les réglages par défaut du marshaling des paramètres des fonctions
sont différents entre VS2003 et VS2005, ce qui ne m'étonnerait pas.
Vérifiez bien que les définitions des fonctions utilisent bien les attributs
et méthodes du namespace "System.Runtime.InteropServices"
(http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemruntimeinteropservices.asp)
pour enlever toute ambiguïté lors du passage de mon managé et non managé.

Si ce n'est pas clair pour vous, donnez-nous la signature de vos fonctions C
venant des fichiers d'en-tête, ainsi que la définitions des fonctions dans
les fichiers C# et le code qui appel ces fonctions.


--
Paul Bacelar
MVP VC++