[C] Créer un .dll

Créer un .dll [C] - C - Programmation

Marsh Posté le 11-11-2006 à 00:21:54    

J'ai un p'tit projet de jeu sympathique en cours.
Pour encore approfondir ma connaissance du C, j'aimerais bien savoir comment créer un .dll, ce truc qu'on lie à notre projet pour pouvoir utiliser les fonctions qu'on a écrite :)
 
J'ai cherché sur le forum : rien.
J'ai cherché sur le net : uniquement à propos du C++ (je FAIS DU C) ou d'autres machins incompréhensibles.
 
Voilà, voilà !


Message édité par Siluro le 11-11-2006 à 11:24:39
Reply

Marsh Posté le 11-11-2006 à 00:21:54   

Reply

Marsh Posté le 11-11-2006 à 00:52:21    

Quelle plateforme : Windows, Linux ?
Quelle IDE : à la mimine, Visual Studio ?
Quel langage : tu es en section 'C' et tu parles de C++ (sur ce point ça sera quasi la meme chose) ?

Reply

Marsh Posté le 11-11-2006 à 00:58:41    

En quoi ces sujets ne t'ont pas aidé :
- Creation DLL avec Visual C/C++ 6.0 : http://forum.hardware.fr/hardwaref [...] 3198-1.htm
- Comment creer une DLL avec borland c++ 5.5 compiler : http://forum.hardware.fr/hardwaref [...] 1247-1.htm
- développer une dll avec c++ .net : http://forum.hardware.fr/hardwaref [...] 8141-1.htm
- générer une dll à partir d'un .c : http://forum.hardware.fr/hardwaref [...] 2205-1.htm
- qq1 pourrait me faire une petite DLL en C ? : http://forum.hardware.fr/hardwaref [...] 5813-1.htm
- DLL en C ? http://forum.hardware.fr/hardwaref [...] 8304-1.htm

Reply

Marsh Posté le 11-11-2006 à 11:24:44    

Windows
DevC++
Je fais du C : les .dll c'est pour du C++ !?
 
Ces sujets ne m'ont pas aidé car ils parlent de C++. Sinon l'avant dernier lien parle de C++ et NON de C, puis le dernier file un lien mort.

Reply

Marsh Posté le 11-11-2006 à 12:17:39    

Siluro a écrit :

Windows
DevC++
Je fais du C : les .dll c'est pour du C++ !?


Non. Rien à voir.
 
Avec dev-C++ quand le fais 'créer une DLL', il prépare le code comme ceci :  
 
dllmain.c :  

Code :
  1. /* Replace "dll.h" with the name of your header */
  2. #include "dll.h"
  3. #include <windows.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. DLLIMPORT void HelloWorld ()
  7. {
  8.     MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
  9. }
  10. BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
  11.                        DWORD reason        /* Reason this function is being called. */ ,
  12.                        LPVOID reserved     /* Not used. */ )
  13. {
  14.     switch (reason)
  15.     {
  16.       case DLL_PROCESS_ATTACH:
  17.         break;
  18.       case DLL_PROCESS_DETACH:
  19.         break;
  20.       case DLL_THREAD_ATTACH:
  21.         break;
  22.       case DLL_THREAD_DETACH:
  23.         break;
  24.     }
  25.     /* Returns TRUE on success, FALSE on failure */
  26.     return TRUE;
  27. }


et

Code :
  1. #ifndef _DLL_H_
  2. #define _DLL_H_
  3. #if BUILDING_DLL
  4. # define DLLIMPORT __declspec (dllexport)
  5. #else /* Not BUILDING_DLL */
  6. # define DLLIMPORT __declspec (dllimport)
  7. #endif /* Not BUILDING_DLL */
  8. DLLIMPORT void HelloWorld (void);
  9. #endif /* _DLL_H_ */


Je ne suis pas d'accord avec le _ au début de l'identificateur, mais le principe est là. Ensuite, tu veux savoir quoi ?
 
Il faut surtout apprendre à se servir de MSDN...
 
http://msdn.microsoft.com/library/ [...] raries.asp


Message édité par Emmanuel Delahaye le 11-11-2006 à 12:21:24

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed