Page 2 sur 2

Publié : jeu. 13/sept./2007 17:50
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

Publié : jeu. 13/sept./2007 18:17
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 ...

Publié : jeu. 13/sept./2007 18:25
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...

Publié : jeu. 13/sept./2007 18:31
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"

Publié : jeu. 13/sept./2007 21:01
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.

@++

Publié : ven. 14/sept./2007 14:48
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
---------------------------

Publié : ven. 14/sept./2007 15:09
par Progi1984

Publié : ven. 14/sept./2007 18:35
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.

Publié : ven. 14/sept./2007 19:13
par Anonyme
ode.lib pour les 2 premiers

Publié : ven. 14/sept./2007 19:29
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.

Publié : ven. 14/sept./2007 19:55
par Anonyme
essaye donc avec LIBCMT.lib

Publié : ven. 14/sept./2007 20:32
par freddix
déjà fait.

Publié : ven. 14/sept./2007 20:59
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

Publié : ven. 14/sept./2007 22:11
par freddix
loool

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