Bonjour,
je voudrais savoir comment insérer une dll dans un projet VC++ 6 ?
Merci
PS : J'ai regardé la FAQ mais je ne trouve pas mon bonheur...
Bonjour,
je voudrais savoir comment insérer une dll dans un projet VC++ 6 ?
Merci
PS : J'ai regardé la FAQ mais je ne trouve pas mon bonheur...
Tu veux dire, utiliser une DLL ? Il faut inclure ses en-têtes là où tu en as besoin, et lier avec le .lib qui l'accompagne.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Merci.
Si je ne dispose que de la dll, je fais comment ?
Tu peux charger les fonctions dynamiquement si tu connais leur nom et leur prototype, mais ce n'est pas une utilisation "classique" d'une DLL, c'est surtout pour tout ce qui nécessite un chargement dynamique, par exemple un système de plugins.
Sinon, si tu as un .def avec ta dll, tu peux régénérer le .lib via un outil livré avec ton compilo.
C'est quelle DLL ? Tu l'as récupérée comment ?
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
C'est une dll que l'on m'a fournit. Elle permet de récupérer trois valeurs x, y et z issues d'une sorte de joystick.
Dans ce cas, si tu n'as vraiment que le fichier DLL, il faut utiliser le chargement explicite. Tu peux faire une recherche sur LoadLibrary, GetProcAddress et FreeLibrary. C'est tout ce dont tu auras besoin, à supposer que tu connaisses le prototype des fonctions que tu vas utiliser.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Ok j'avais déjà vu ces 3 fonctions. Merci
Tu ne connaitrais pas un programme permettant de voir quelles fonctions sont comprises dans une dll ?
J'ai vu ca
1) Charger la dll en mémoire, à l'aide de LoadLibrary()
2) Appeler la fonction souhaitée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HMODULE hModule = LoadLibrary("le path de la dll"); if ( hModule == NULL ) { // la dll n'a pas pu être chargée, gérer l'erreur }
Quelles sont les include a mettre pour que cela fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // on défini le type de la fonction a appeler pour simplifier le code: typedef int (WINAPI *UnTypeDeFonction) (float f); // on récupère un pointeur sur cette fonction UnTypeDeFonction lafonction = (UnTypeDeFonction)GetProcAddress(hm, "unefonction"); //on appelle la fonction: int unint = lafonction(3.45);
Merci
ATTENTION
Tu es sûr que c'est bien une DLL native, pour commencer ?
Ce n'est pas du .Net ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
windows.hQuelles sont les include a mettre pour que cela fonctionne.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Si tu utilises VC++ il y a comme outil un petit exe nommé Depends.exe qui permet d'ouvrir une DLL et d'obtenir ses dépendances avec d'autres DLL et la liste des fonctions implémentées (mais je crois qu'on peut les cacher aussi...)Envoyé par alliance
Partager