Utilisation d'une dll c# [C#] - C#/.NET managed - Programmation
Marsh Posté le 05-04-2007 à 12:49:51
euh ben deja ca ne se fait pas du tout comme ca...
[DllImport("test.dll" )] <- c'est pour des vieux machins ca, genre des objets com
Toi tu dois ajouter une "référence" à ta DLL dans ton csproj.
Achete toi un bouquin, je crois que ca ira plus vite, parce que la il n'y a meme pas les bases pour expliquer quoi que ce soit
Marsh Posté le 05-04-2007 à 13:31:48
Même si ca fonctionnait comme ça, il n'y a aucune référence à ta classe EnvoiMail dans ton dllimport; comment veux tu pointer vers la méthode correcte ?
Marsh Posté le 05-04-2007 à 16:02:28
Merci à vous deux pour vos réponses.
Tout d'abord c'est vrai que je n'ai pas les bases en C# (et donc je sais pas comment utiliser une dll).
Par contre j'ai bien les bases en programmation (notamment objet) et je pense pouvoir comprendre ce que vous pourriez me dire.
J'aimerais juste qu'on m'aide à savoir comment on utilise une méthode d'une dll générée. Je veux pas savoir tout sur tout mais juste ca. J'ai recherché sur le net mais je n'y ai trouvé que des informations pas si juste que ca (cf " [DllImport("test.dll" )] " ).
Donc pour m'acheter un bouquin (et accessoirement dépenser 40) pour juste savoir comment appeller une méthode d'un dll, ca me parait un peu abusé. D'autant que je dois etre au point pour demain soir au plus tard.
Donc merci de bien vouloir m'aider à corriger mon code.
J'ai rajouté la référence à la dll ds mon projet et viré le DllImport. Le prob c'est qu'il ne reconnait pas IEnvoiMail et lireLog.
Code :
|
Marsh Posté le 05-04-2007 à 16:03:48
ReplyMarsh Posté le 05-04-2007 à 16:08:08
Disons que 40 pour acheter un bouquin parlant de programmation/conception objet ne serait pas inutile alors.
Marsh Posté le 05-04-2007 à 16:27:08
ben à la limite, même pas. j'ai aucun bouquin sur le C#, je suis une brèe finie, mais voir un new sur une interface ça me fait quand même sauter de ma chaise, tout comme écrire une DLL en .NET puis la réutiliser dans un autre projet me semble particulièrement trivial...
msdn, c'est pas fait pour les chiens sans poils.
Marsh Posté le 05-04-2007 à 16:59:07
Exact ct pas IEnvoiMail mais EnvoiMail.
Enfin le probleme reste le même, je n'arrive pas à acceder à la classe EnvoiMail même en ayant fait une réference sur la dll.
Faire une dll .NET puis la réutiliser est sans doute trivial mais je n'y arrive pas. Si vous pouviez m'aider un ti peu ce serait cool.
Marsh Posté le 05-04-2007 à 17:11:16
Crée un projet "Bibliothèque de classes".
=> Ca, c'est ta DLL.
Ensuite deux choix : le premier, plus pratique pour le débug et les évolutions : ajoute dans ta solution un nouveau projet "Application Windows". Dans ce nouveau projet, fais "Ajouter références", onglet "projets" et choisi ton projet de ta lib.
Autre solution : crée une nouvelle solution, ajouter référence > bouton "parcourir", cherche la sortie (fichier dll) de ton projet de bibliothèque.
Et voilà
Ensuite, ta lib est accessible dans ton projet comme n'importe quel objet du framework :
Code :
|
Marsh Posté le 05-04-2007 à 17:53:36
Ok j'ai testé les deux et ca marche impec.
Merci beaucoup MagicBuzz!!!
Par contre vous savez comment faire en java pour utiliser exactement la même dll (sans utiliser le systeme jni qui redefini la dll)?
Marsh Posté le 05-04-2007 à 20:15:51
ReplyMarsh Posté le 17-01-2011 à 16:51:33
Hum...
oui c'est ce que j'allais dire...
Essai de mettre "using Prototype;"
Ca devrais mieux fonctionner
Marsh Posté le 04-04-2007 à 22:09:21
Bonjour à tous.
Je vous expose mon problème.
J'aimerais faire une dll C# et l'utiliser dans un autre programme (pour mon exemple par un autre programme C#).
Donc voici la partie dll:
Interface
Implémentation
Je crée ensuite la dll à partir de ces deux fichiers. J'obtient un ma dll (lors de la creation il y a eu 2-3 warnings mais aucune erreur).
J'utilise ensuite la dll dans un autre programme et je lance la méthode lireLog().
Il importe bien la dll mais il me met l'erreur suivante (lancée par l'appel à lireLog()):
Je suis novice en C# (et en manipulation de dll) donc j'aimerais un pti coup de main.
ps: j'aimerais aussi tester cette dll avec java. Apparement il faut utiliser jni. Mais le prob c'est que (d'après mes recherches) il faut générer le .h d'après le prog java puis faire le dll en fonction du nom des methodes du .h. Moi ce que je veux c'est qu'un programme java utilise ma dll sans avoir à la redéfinir (il se demerde comme il veut mais il doit s'adapter à la semantique de ma dll). Vous savez comment faire ca?