DllImport problème de type const

Résolu
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014 - 14 févr. 2006 à 13:13
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 15 févr. 2006 à 19:47
hello
j ai un [DllImport("C://Dll//msfdll.dll")] vers une dll dans mon projet le problème c'est que DllImport() n'accepte qu'un const string et donc si je veux metter le chemin dans le web.config il est en string tout court.
j ai testé dans mon code d'aller chercher le path dans le

const string msfdllPath = System.Configuration.ConfigurationManager.AppSettings["msfdllPath"] ;

mais bien sûr ce que je retire du web.config file est un string et donc ça ne passe pas...
je ne sais pas si il y à moyen de déclarer le type const dans le fichier web.config.

est-ce que quelqu'un aurait une solution à apporter?


http://www.aspfr.com/infomsg/DLLIMPORT-PROBLEME-TYPE-CONST-1_662907.aspx

9 réponses

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
15 févr. 2006 à 19:47
Voilà, je l'ai poster la source ici : http://www.csharpfr.com/codes/PINVOKE-DYNAMIQUE_36080.aspx
La méthode dont je parlais est la 3ème.

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
14 févr. 2006 à 13:22
Salut,

Tu travailles en .Net 1.1 ou .Net 2.0 ?

/*
coq
MVP Visual C#
*/
0
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
14 févr. 2006 à 13:26
version 2.0
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
14 févr. 2006 à 13:34
Parfait :-)

Tu vas donc pouvoir te servir de Marshal.GetDelegateForFunctionPointer en conjonction avec LoadLibrary et GetProcAddress (de l'API Win32) afin d'initialiser un delegate correspondant à la signature de la méthode exportée de la dll.

Tu pourras spécifier le chemin d'accès de la dll à l'appel de LoadLibrary.

/*
coq
MVP Visual C#
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
14 févr. 2006 à 13:47
Oulà j'ai compris "Parfait :-)" ce qui me réjouis mais le reste c'est du chinois dit comme ça.
Je dois être à 200% à côté de la plaque en disant ça mais je vu que je l'ai pas précisé dans mon premier post, mais ma dll est écrite en VB et je ne peux donc pas l'intégrer via Add Reference.
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
14 févr. 2006 à 15:48
Euh, elle est écrite en VB : mais ça expose bien des méthodes comme les dll "normales" cette bestiole, pas du COM ?

/*
coq
MVP Visual C#
*/
0
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
14 févr. 2006 à 17:36
ça je sais pas te dire j ai essayé d'ajouter ma dll simplement avec l'option Add New Reference, mais ça a pas fonctionné.

quel était ton idée avec les Marshal.GetDelegateForFunctionPointer, LoadLibrary, GetProcAddress ça doit sûrement être ce qu'il me faut mais étant newbie j'ai du mal à saisir.
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
14 févr. 2006 à 17:47
Je te fais un exemple.

/*
coq
MVP Visual C#
*/
0
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
15 févr. 2006 à 11:32
ok
0
Rejoignez-nous