Bonjour
Quelqu'un sait comment convertir un projet . exe C++ en DLL pour être compatible avec C# ?
Merci
Bonjour
Quelqu'un sait comment convertir un projet . exe C++ en DLL pour être compatible avec C# ?
Merci
le plus simple est de créer un projet DLL et de remettre tous les fichiers de l'exe.
ok merci ,
Bon j'ai fait un Dll créer par c# et maintenant je me suis bloquer
m'aider de faire une point d'entrer dans mon dll qui s'appel "testing"creér par c# qui fait la somme de deux entier
et bien sur don mon aplication je le fait appel par dll import comme ca
l’exception m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [DllImport("testing.dll", EntryPoint = "traitement")] public static extern int traitement(int a1,int a2);
Impossible de charger la DLL 'testing.dll': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
svp expliquer cette exception je me suis bloquer sa fait deux jours
Peut être qu'il ne trouve simplement pas le fichier.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
ou je doit déplacer le fichier .Dll?
svp si tu me peut m'aidez cité mois étape par étape ce que je doit faire pour que je réussite d'importer mon Dll je me suit débutant
Salut,
La première chose à faire est de s'assurer que les fonctions et les classes dont tu auras besoin en C# sont correctement exportées.
Pour ce faire, on utilise généralement une directive préprocesseur du genre de
qui s'assurera que les bonnes conventions d'appel seront utilisées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #ifdef SHARED #ifdef MYLIBEXPORT #define MYLIB_API __declspec(dllexport) #else #define MYLIB_API __declspec(dllimport) #endif // MYLINEXPORT #else #define MYLIB_API #endif // // SHARED
on déclarera alors les classes devant être exportées par la dll sous une forme proche de
et les fonctions devant être exportées sous une forme proche de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class MYLIB_API MyClass { /* ...*/ };
(note que tel que j'ai présenté la directive préprocesseur, elle offre l'énorme avantage de permettre les convention d'appel "classiques" dans le cas d'une application "stand alone" et / ou d'une bibliothèque statique )
Code : Sélectionner tout - Visualiser dans une fenêtre à part void MYLIB_API laFonctionQuiFaitPouet(/* ...*/ );
Il faut ensuite générer un projet de type "dll" de la manière classique, en ajoutant l'ensemble des fichiers du projet (à l'exception généralement de la fonction main, qui est parfois remplacée par une fonction "dllMain" qui permet de charger correctement la dll )
Pour que la dll soit retrouvée par le programme qui doit l'utiliser, il faut, au choix:La première solution est sans doute à privilégier lorsqu'il n'y a qu'une application qui a besoin de la dll
- la placer dans le meme dossier que l'exécutable qui en a besoin
- la placer dans un dossier apparaissant dans la variable PATH de l'utilisateur (ou de l'ordinateur).
- La placer dans le dossier réputé contenir l'ensemble des dll du système :
- C:\Windows\System32 ou C:\Windows\SysWOW64 selon que la bibliothèque a été compilé en mode 32 ou 64 bits (note qu'il te faudra des droits d'admin pour cette dernière solution )
La deuxième est généralement privilégiée lorsque la dll est susceptible d'être utilisée par plusieurs applications et que l'on souhaite éviter d'avoir à l'installer avec des privilèges d'administrateur) (il "suffit" d'un simple fichier batch pour éventuellement rajouter n'importe quel chemin à la variable PATH )
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
merci bien je vais l’essayer ,
le code de une directive préprocesseur ou je doit le mettre
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