Bonjour,
Je voudrais créer une DLL et j'ai donc trouvé pas mal d'exemple un peu
partout. Mais il y a quelque chose qui me laisse un peu perplexe.
Dans presque tous les exemples on trouve un fichier main.c
contenant le point d'entrée de la DLL du genre:
Puis ensuite la dll est chargé dans le programme client:
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 int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: break; case DLL_PROCESS_DETACH: break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; } return TRUE; }
Le truc c'est que moi j'utilise GCC (MinGW), donc j'ai récupéré l'exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 HMODULE hDLL = LoadLibrary("TestDLL.dll");
du site:
http://www.mingw.org/docs.shtml#compilingandbuilding
Sauf que là c'est trés différent. Il n'y a aucun point d'entrée et
une librairie statique est générée en plus de la DLL lors de la
compilation. Pour utiliser la DLL il suffit de linker la librairie
statique lors de la compilation du programme client.
N'étant pas un spécialiste des DLL je voudrais savoir:
1) Quelle est la meilleur des 2 méthodes ?
2) Est ce qu'on ne perd pas les avantages d'une DLL en linkant celle-ci à la façon d'une librairie statique ?
Voilà, merci de m'éclairer.
Partager