Bonjour,

Je regarde depuis quelque jour la façon de faire une DLL et à ma grande suprise je ne trouve pas beaucoup de tutoriaux. Sur les rares tutoriaux que j'ai trouvé on a souvent le droit à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
#include <windows.h>
BOOL APIENTRY dllMain(...);
export "C" int maFonction();
mais j'ai aussi trouvé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#include "UnHeaderPerso.h"
export maFonction(...);
Quel est la forme à respecter ?

Puis lors de la compilation la dll, le fichier "fichier.lib" ne se crée que si on passe un fichier .def en plus du fichier c ou cpp au compilateur. A moins que je n'ai pas bien compris.

Voici la ligne de commande utilisée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cl /LD fichier.cpp fichier.def
Pourquoi le fichier .lib ne se crée pas en entrant seulement :
Mes questions sont les suivantes :
* le fichier .def est-il indispenssable pour créer le fichier .lib ?
* De plus le .lib est-il la seul manière de linker l'exe à la DLL ?

Je m'interesse depuis peu au monde windows et je trouve ça quand même super complexe ! Quand on sait que sous linux avec gcc, il suffit de taper :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc fichier.cpp -so fichier.so
pour avoir une librairie linker dynamiquement (dll linux, quoi ! )

Merci d'avance pour vos réponses