IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dev-C++ Discussion :

Utiliser un DLL sans .LIb et sans .DEF


Sujet :

Dev-C++

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 74
    Points
    74
    Par défaut Utiliser un DLL sans .LIb et sans .DEF
    Bonjour,

    Venant de Blitz3D (Basic) et developant depuis peu sous DEVC++ et Code::block, mon problême est le suivant: Comment utiliser des DLLs Classiques ( Utilisable sous VB6 sans problême a l'aide d'une petite moulinette maison fabriquant un module de déclaration en .bas ) en C/C++ sans passer par les .DEF ou .LIB

    Sous Blitz3D, les DLLs sont interfacées a l'aide d'un fichier de définition Ici un exemple concrêt. Je n'ai que la DLL et le fichier de déclaration suivant (extrait) :
    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
     
    .lib "Blitzpx.dll"
    pxBodyCreatePlane%(x#, y#, z#):"_pxBodyCreatePlane@12"
    pxBodyCreateCube%(dx#, dy#, dz#, mass#):"_pxBodyCreateCube@16"
    pxBodyCreateSphere%(radius#, mass#):"_pxBodyCreateSphere@8"
    pxBodyCreateCapsule%(height#, radius#, mass#):"_pxBodyCreateCapsule@12"
    pxBodyCreateCylinder%(radius#, height#, nbEdge%, mass#):"_pxBodyCreateCylinder@16"
    pxBodyCreateHull%(vbank*, nvert%,mass#):"_pxBodyCreateHull@12"
    pxBodyCreateHullFromSSM%(surf%, mass#):"_pxBodyCreateHullFromSSM@8"
     
    pxCreateTriMeshPmap%(vbank*, fbank*, MESH_NBVERTICES%, MESH_NBFACES%, file_name$, pMap%):"_pxCreateTriMeshPmap@24"
    pxCreateTriMeshFromPmap%(triangleMesh%, mass#):"_pxCreateTriMeshFromPmap@8"
    pxCreateTriMesh%(vbank*, fbank*, MESH_NBVERTICES%, MESH_NBFACES%, mass#):"_pxCreateTriMesh@20"
    pxCreateTerrain%(nSize%, bank*, scale_x#, scale_y#, scale_z#):"_pxCreateTerrain@20"
    pxCreateTerrainFromMesh%(vbank*, fbank*, MESH_NBVERTICES%, MESH_NBFACES%, axis#):"_pxCreateTerrainFromMesh@20"
    pxCreateTerrainPmap(vbank*, fbank*, MESH_NBVERTICES%, MESH_NBFACES%, axis#, file_name$, pMap%):"_pxCreateTerrainPmap@28"
    pxTestTriMesh%(entity%, mass#):"_pxTestTriMesh@8"
    pxCreateTriMeshToFile%(vbank*, fbank*, MESH_NBVERTICES%, MESH_NBFACES%, fname$):"_pxCreateTriMeshToFile@20"
    pxCreateTriMeshFromFile%(fname$, mass#):"_pxCreateTriMeshFromFile@8"
    Extrait du fichier .decls du wrapper de Physx ( Ageia) à transformer en "include_quelque_chose.h" afin d'exploiter cette DLL sous C/C++. Je sais convertir un .decls de Blitz3d vers un "module_quelque_chose.bas" de déclarations pour VB6, mais je rame pour faire la même chose pour le C.


    Merci

    Jean-Pierre.

  2. #2
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 74
    Points
    74
    Par défaut
    "LoadLibrary, GetProcAddress et FreeLibrary"
    Solution trouvée.
    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
    21
    22
     
    HINSTANCE hDLL;               // Handle to DLL
    LPFNDLLFUNC1 lpfnDllFunc1;    // Function pointer
    DWORD dwParam1;
    UINT  uParam2, uReturnVal;
     
    hDLL = LoadLibrary("MyDLL");
    if (hDLL != NULL)
    {
       lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL, "DLLFunc1");
       if (!lpfnDllFunc1)
       {
          // handle the error
          FreeLibrary(hDLL);       
          return SOME_ERROR_CODE;
       }
       else
       {
          // call the function
          uReturnVal = lpfnDllFunc1(dwParam1, uParam2);
       }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. .dll sans .lib
    Par gpy1123 dans le forum C++
    Réponses: 1
    Dernier message: 10/04/2009, 09h50
  2. Utiliser une DLL sans les headers
    Par Ange_blond dans le forum C++
    Réponses: 16
    Dernier message: 23/02/2009, 09h02
  3. utilisation des dll et lib
    Par sefir dans le forum C++
    Réponses: 1
    Dernier message: 19/11/2007, 15h55
  4. Utiliser une DLL sans le .LIB dans Visual Studio 2005
    Par lekernel dans le forum Visual C++
    Réponses: 5
    Dernier message: 02/08/2007, 08h54
  5. Probleme d'appel d'une dll, sans lib et sans stdcall
    Par tchern dans le forum Visual C++
    Réponses: 8
    Dernier message: 31/07/2007, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo