Salam,
J'ai une dll que je veux travailer avec dans mon projet. je veux l'implementé en utilisant DllImport ou linstruction declare.
Sachant que la dll que je veux implementer c'est moi meme qu'il a crée.
Du code serais le bien venue.
Salam,
J'ai une dll que je veux travailer avec dans mon projet. je veux l'implementé en utilisant DllImport ou linstruction declare.
Sachant que la dll que je veux implementer c'est moi meme qu'il a crée.
Du code serais le bien venue.
Pour utiliser une dll que tu as créée, tu importes ta dll dans ton projet puis tu l'utilise comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim Ma_Classe as new Ma_Classe_Dans_Ma_Dll
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Si ta DLL est en .NET, c'est simple. Il suffit de l'ajouter dans les références de ton projet (dans l'explorateur de solution), et les types de ta DLL seront accessibles dans ton programme (il faudra peut-être importer le namespace dans lequel ils sont déclarés).
Si c'est une DLL native, je te suggère de suivre un tutoriel, celui de Thomas Lebrun sur Developpez.com a l'air bien.
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Bonjour,
je suis dans le même cas que Charaf. C'est à dire que j'ai une dll native que j'aimerais utiliser dans un projet C#.
A l'exécution du projet, j'ai l'exception suivante :Je dois mal placer la dll dans les dossiers du projet. Est-ce que quelqu'un aurait une idée de l'endroit où je dois placer la dll?Une exception non gérée du type 'System.DllNotFoundException' s'est produite...
Informations supplémentaires*: Impossible de charger la DLL (ma_dll.dll).
Merci d'avance.
Vous souhaitez participer aux rubriques .NET ? Contactez-moi
Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
Mon blog, Mes articles, Me suivre sur Twitter
En posant correctement votre problème, on trouve la moitié de la solution
Merci pour la réponse, mais comme je l'ai précisé, il s'agit d'une dll native et non d'une dll .NET. Si je fais comme tu me dis, j'ai une erreur de type :. Autrement dit, pour utiliser la dll, il faut suivre le tuto http://morpheus.developpez.com/dlldotnet/.il ne s'agit pas d'un assembly valide ou d'un composant com
Mon problème, c'est que je ne sais pas où placer cette dll dans le dossier de mon projet pour ne plus avoir l'exceptionqui montre clairement que la dll n'a pas été trouvée.'System.DllNotFoundException'
Il faut la mettre dans le même répertoire que l'exécutable. Tu peux aussi jouer avec le probing pour indiquer dans quel(s) sous-répertoire(s) chercher les assemblies.
Pas de questions techniques par MP
Oki, c'est chose faites ! Enfin j'ai regardé le nom de l'exe et j'ai fait une recherche automatique dans le projet (qui set assez gros et qui n'est pas de moi). L'exécutable a été trouvé dans
J'ai mis la dll dans chacun de ces dossiers pour le test. (j'attends votre savoir pour me dire dans lequel de ces dossiers je dois vraiment mettre la dll)..../Dossier/bin/Debug
.../Dossier/bin/Release
.../Dossier/obj/Debug
.../Dossier/obj/Realease.
Sinon, maintenant j'ai l'exception suivante un peu différente. Je me pencherais dessus après manger :
'System.EntryPointNotFound'
Impossible de trouver le point d'entrer <nomFonctionUtilisée> dans la DLL ma_dll.dll.
L'idéal serait de mettre la DLL dans un répertoire de la solution et d'ajouter une commande de compilation pour la copier automatiquement dans bin\debug ou bin\release en fonction du mode choisi pour la compilation. Mais dans un premier temps limite toi à la copier dans bin\debug et bin\release.
Pour l'erreur, c'est que dans la DLL native la fonction n'est pas visible ou bien que tu as indiqué le mauvais nom lors du DllImport.
Pas de questions techniques par MP
Qu'entends tu par 'pas visible'? Je ne crois pas m'être trompé de nom de fonction. Après, peut être que l'appel est mal fait. C'est possible ça. Je me suis contenté de faire un DllImport pour l'appeler :
Après, il est vrai que c'est la première fois que je fais du code pour en faire une dll. Et que c'est la première fois que j'utilise une dll.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 namespace <namespace> { using .... class <class> { [ DllImport("ma_dll.dll") ] // Déclaration de la méthode à utiliser public static extern void readerDetection(); ... public method() { ... readerDetection(); ... } ... } ... }
Bon je retourne à mon code et je vous tiens au courant si avancée il y a !
Je crois que c'est le terme 'extern' de la déclaration de la méthode qui permet de l'utiliser de l'extérieur. Enfin je pense.
Non rien à faire, ja'i toujours le message d'erreur :
Je ne sais pas vraiment quoi faire.Impossible de trouver le point d'entrer <nomFonctionUtilisée> dans la DLL ma_dll.dll.
J'ai même fait des appels du genre :
Et puis j'utilise ça dans une méthode comme dans l'exemple précédent.[ DllImport("ma_dll.dll", EntryPoint="laMethodeDeLaDll") ]
static extern void unNomDeMethodeNonUtiliseDansLeProjetPourEtreCertainQuilN'yEstPasDePbDentree();
Mais même ça ne suffit pas à résoudre le problème.
Est-ce que le problème peut venir du fait que j'ai fait d'un <fichier>.jar (java) un <fichier>.dll avec l'application ikvmc.exe. Je ne sais pas dans quelle mesure ce logiciel est efficace.
Peut être qu'il existe d'autres solutions qui me permettraient d'utiliser ma classe java au sein d'un mon projet C# (ou .NET).
Je voulais aussi essayer d'utiliser le logiciel jnbridge http://www.jnbridge.com/, mais j'ai du mal à comprendre comment ça s'utilise...
Merci pour votre aide !
En suivant les conseils d'un autre post (#10) du forum :
http://www.developpez.net/forums/d94...ee/#post625864
J'ai voulu voir les méthodes dans la dll et voilà ce que j'obtiens :
Est-ce que ça signifie qu'il n'y a rien dans la dll?Dump of file C:\ma_dll.dll
File Type: DLL
Summary
2000 .reloc
2000 .rsrc
12000 .text
Merci d'avance.
Vide je ne pense pas mais aucune fonction n'est exportée. Tu ne peux donc pas y accéder depuis l'extérieur. Il faut vérifier ta DLL et voir si la fonction est bien exportée. Le forum C/C++ devrait pouvoir t'aider de ce côté.
Pas de questions techniques par MP
En effet, aucune fonction ne semble être exportée... Le problème vient peut etre de l'utilisation de ikvmc... J'ai voulu tester jbimp parce que j'en ai entendu parler en fouinant sur le net, mais je n'ai pas été capable de le télécharger. Impossible de le trouver où que ce soit.
Je vais retenter avec ikvm pour voir si j'arrive à faire quelque chose de mieux...
J'ai vaguement chercher sur le forum C/C++ des informations là dessus, mais je ne sais pas vraiment quoi chercher, et je ne suis pas sûr que cela réponde à mon problème.
Re-bonjour
Est-ce que quelqu'un a déjà eu ce genre de difficultés avec ikvmc?
Est-ce que quelqu'un connaitrait l'équivalent de la librairie jsr 268 en java (Java Smart Card I/O API)
Merci
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