Import .lib : Importer DGDK ... Crash du compiler

Archive.
Anonyme

Message par Anonyme »

Question con :
l'export en c++ est fait correctement ?

du genre :

Code : Tout sélectionner

#ifdef OS_WINDOWS

    #define DLLEXPORT __declspec(dllexport) __stdcall

#endif

extern "C" {





        DLLEXPORT void MyFunc(int ArgA)

        {

            /* TON CODE */

        }

}

#ifdef OS_WINDOWS

BOOL WINAPI  DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)

{

    switch (fdwReason)

    {

        case DLL_PROCESS_ATTACH:

            // attach to process

            // return FALSE to fail DLL load

            break;



        case DLL_PROCESS_DETACH:

            // detach from process

            break;



        case DLL_THREAD_ATTACH:

            // attach to thread

            break;



        case DLL_THREAD_DETACH:

            // detach from thread

            break;

    }

    return TRUE; // succesful

}

#endif
Dernière modification par Anonyme le jeu. 13/sept./2007 18:26, modifié 1 fois.
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

Je ne pourrais pas le confirmer car ce n'est pas moi qui ait crée ces .lib(s) ... mais je vais demander aux développeurs ...
Anonyme

Message par Anonyme »

n'oublie pas aussi lors de l'import avec Purebasic de mettre la taille des arguments :
MyFunc@4 ; procedure avec 1 integer en paramètre.
etc...
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

ben la c'est différent ...
Voila un exemple d'importation de fonction venant d'une des .lib de DGDK :
dbBox2( ileft.l , itop.l , iright.l , ibottom.l , dw1.l , dw2.l , dw3.l , dw4.l ) As "?dbBox@@YAXHHHHKKKK@Z"
dbLockPixels() As "?dbLockPixels@@YAXXZ"
Anonyme

Message par Anonyme »

essaye :

dbBox2( ileft.l , itop.l , iright.l , ibottom.l , dw1.l , dw2.l , dw3.l , dw4.l ) As "_?dbBox@@YAXHHHHKKKK@Z@32"

essaye aussi sans le "_" si cela plante.

@++
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

Bon j'ai trouvé... En fait PureBASIC N'aime pas lorsque les .lib ne sont pas toutes dans le même dossier ... J'ai du tout copier dans celui du PureBASIC contenant toutes les .lib systèmes ...

Maintenant je n'ai plus le crash du compilateur du PureBASIC :)
Je n'ai plus que 5 liens externes non résolus et même avec une recherche Google, j'ai pas trouvé les fichiers .lib à inclure pour fixer ce problème :
---------------------------
PureBasic - Linker error
---------------------------
POLINK: error: Unresolved external symbol '?DarkGDK@@YAXXZ'.
POLINK: error: Unresolved external symbol '__imp__wsprintfA'.
POLINK: error: Unresolved external symbol '?_AtlBaseModule@ATL@@3VCAtlBaseModule@1@A'.
POLINK: error: Unresolved external symbol '?_Xran@_String_base@std@@QBEXXZ'.
POLINK: error: Unresolved external symbol '?_Xlen@_String_base@std@@QBEXXZ'.
POLINK: fatal error: 5 unresolved external(s).
---------------------------
OK
---------------------------
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

Pour le wprint... c'est fixé :p
Pour l'Atls c'est bon aussi.
Le DarkGDK aussi :)

Reste les 3 derniers :
---------------------------
PureBasic - Linker error
---------------------------
POLINK: error: Unresolved external symbol '?_Xran@_String_base@std@@QBEXXZ'.
POLINK: error: Unresolved external symbol '?_Xlen@_String_base@std@@QBEXXZ'.
POLINK: error: Unresolved external symbol '___ImageBase'.
POLINK: fatal error: 3 unresolved external(s).
---------------------------
OK
---------------------------
Pour le XRan et XLen, impossible de trouver une .lib qui les contient pour l'inclure au projet.
Anonyme

Message par Anonyme »

ode.lib pour les 2 premiers
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

J'ai essayé mais ça ne résout pas le problème.
LEs 2 erreurs apparaissent toujours.

ode.lib utilise ces 2 fonctions d'une autre .lib mais ne les contient pas.
Anonyme

Message par Anonyme »

essaye donc avec LIBCMT.lib
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

déjà fait.
Anonyme

Message par Anonyme »

arf, regarde ici :

http://www.differentpla.net/content/200 ... -base-xran

j'éspère que tu résoudra ton problème.
Vive le code libre :D
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

loool

Je vais voir trouver une version VC7 de la Lib libcp.lib.
Répondre