Bonjour,
je veux savoir si c'est possible d'utiliser une dll native, développée en MFC, dans une application C#.
Si c'est possible, comment?
Merci
Bonjour,
je veux savoir si c'est possible d'utiliser une dll native, développée en MFC, dans une application C#.
Si c'est possible, comment?
Merci
bonjour
oui c'est possible
Faut juste chercher dans le forum, ya plein de réponses![]()
cela n'a rien à voir avec les MFC...
Par contre, avec P/Invoke, on ne peut appeler que des méthodes exposées par la DLL.. après, rien n'empeche l'implémentation de la DLL de s'appuyer sur des classes MFC, ou autres...
Par contre, avec un wrapper C++/CLI, on peut facilement utiliser du code C++ MFc mais, faut faire un peu de code![]()
Merci pour les explications
Dans le code C++ de la dll, il y a des méthodes qui prennent comme paramètres des tableaux et aussi un passage par référence or le c# , à ma simple connaissance, ne supporte pas le passage par référence(Si je me trempe pas)
alors comment faire??
Merci
le passage par ref fonctionne en C#
Il existe (je sais plus ou sur le site de microsoft) un tableau indiquant les types C# correspondant aux types C++ pour "conversion" !!!
Le mot clé "ref" existe en C#...
Bonjour,
Je crois que je me suis mal exprimée,en fait je veux passer des valeurs par référence car les méthodes dans ma dll passe des tableaux et des variables par référence
Merci
Bonjour,
si c'est uniquement des fonctions que tu appelles P/Invoke resout le probleme.
si c'est des classes que tu veux utiliser directement en c# ou en vb.net il faut:
1/ si c'est des fichiers dll Com c.a.d MFC ATL ou composants COM MFC l'outil tlbimp.exe(importateur de librairie d'interface de types de l'activex com) genere un assembly dll wrapper pour la dll d'origine(du genre microsoft.office.interop.dll).
2/ si c'est une dll ordinaire comme il a ete dit par les membres il faut ecrire soit meme un wrapper c++/cli de tes classes.Cest rebarbatif ,beaucoup de code.
3/troisieme voie c'est generer le fichier IDL dans ta dll (c.à.d la transformer en COM en specifiant la liste des types à exporter (classes,fonctions,variables,structures etc...) .Le compilateur c++ cree un fichier .idl et surtout un fichier .tlb incorporee dans le binaire.
c'est celui la qui est lu par tlbimp.exe pour generer le wrapper de sortie dll pour net.
regarde sur le site codeplex tu trouveras all-in-one net framework pour des exemples (en particulier le dernier).
bon code....
Bonjour,
Merci à tous,
Ces liens peuvent aider aussi
http://djdsoft.wordpress.com/2010/12...e-mode-unsafe/
ftp://ftp-developpez.com/nico-pyrigh...op/interop.pdf
http://www.nedcomp.nl/support/origdo...ketutorial.htm
http://blogs.microsoft.co.il/blogs/s...-c-bridge.aspx
http://www.codeproject.com/KB/cs/marshalCPPclass.aspx
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager