uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
17 févr. 2008 à 19:17
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
5 mars 2008 à 12:46
Bonsoir.
Je voulais simplement savoir s'il y en a parmi vous qui seraient capables de m'expliquer comment créer une dll (qui fait par exemple de simples calculs de base, pour commencer) a partir de l'IDE code::block.
Cela fait plusieurs jours que je cherche des tutos, j'ai remarqué que la facon de faire n'était pas la même sur Visual c++ que sur Dev, mais que dire de code::block ? Je n'ai rien trouvé... J'ai tenté de dl des petits programmes puis de les remanier, mais rien n'y fait, je ne comprends pas la démarche a suivre...
Quelqu'un peut-il [re-]expliquer de facon brève et précise ? (même des liens peuvent suffir). Merci bien.
ps: (dlls codées en C si possible , et surtout, exportables dans un client mIRC )
cs_fifi82
Messages postés3Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 4 mars 20081 4 mars 2008 à 20:58
Les inludes dépende des fonctions que tu va utilisé.
mais j'ai réussi à faire des dll en c++, avec code::blocks => Create a new project
-> Dynamic link Library
->Tu donne un nom au projet ex "test7"
-> comme compillo tu garde "GNU GCC Compiler"
moi je décoche "Create "Debug" configuration"
tu à 2 fichiers
- un "main.h" qui permet de déclarer les fonctions
- un "main.cpp" qui comtient les fonctions
Dans le "main.cpp" la fonction "DllMain" doit ètre toujours à la fin.
une fonction est créer par défaut pour exemple c'est "SomeFunction"
elle à 1 paramètre qui est la variable "sometext" qui est de type "LPCSTR"
quand tu appel cette fonction avec un texte en paramètre, c'est elle qui récupère le texte.
la fonction ouvre une boite d'information avec comme titre "DLL Message" et comme texte le texte que tu lui à passé en paramètre.
Dans "main.h", il y à l'include => #include <windows.h> pour "MessageBoxA"
il y à aussi la déclaration de la fonction de tout-à l'heure -> "void DLL_EXPORT SomeFunction(const LPCSTR sometext);"
si tu ne déclare pas tes fonctions dans "main.h", elle ne seront pas prise en compte.
J'ai télécharger la "SDL", c'est une librairie qui permet de faire plein de truc et facilement, 2D, 3D, audio, gestion clavier, souris etc..., je bricole pour l'instant la 2D !
J'ai aussi "Fmod" un librairie qui permet de lire des MP3, MOD, XM, WAV etc...
elle permet aussi d'appliquer des éffets sonore, comme l'écho, compression, etc...
elle permet aussi de lire des MP3 en streaming, sans télécharger le MP3, depuis internet(si le fichier est sur un serveur http et pas sur un ftp).
Voila, je bricole un tout petit peu en C/C++, je trouve un peut compliqué, mais on arrive toujours à s'en sortir grace au web.
A+
cs_fifi82
Messages postés3Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 4 mars 20081 26 févr. 2008 à 21:35
Salut
je suis pas tres doué en C, mais j'ai déja programmé quelques dll sous code::blocks.
Par défaut il fait des DLL en c++ ! j'ai pas tout pigé mais le même programme en C, est 10 fois plus petit, une DLL en C++ avec 3 ou 4 fontions elle fait environ 200ko, en C elle fait que 20ko ?
Pour faire une dll en C, il suffit de créer un projet console => C,
Tu lui donne un nom ex: test1, il vas créer un dossier qui porte le nom de test1 avec des fichiers dedans.
quand tu est sous l'éditeur tu éfface tous se qu'il y à dans main.c puis tu tappe tes fonctions
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{ case DLL_PROCESS_ATTACH: break; case DLL_PROCESS_DETACH: break;
case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break;
} return TRUE;
}
///////////////////////////////////////
Puis avant de compiler, il faut lui dire que c'est une dll et pas une application.
Dans la fenètre Management, sous Workspace il y à "test1", tu fait un clic droit dessus, puis tu fait "proprietie", tu vas sur l'oglet "Build targets" et efface "Debug", puis tu change le type, il y à "Console application", il faut "Dynamic library", tu peut changer le nom de la dll filale. tu fait ok puis tu compile avec "Build" ou ctrl+F9.
Voila, mes compétance sous code::blocks se terminent ici :
javascript:Insert_Emoticon('/imgs2/smile_cool.gif');</windows.h>