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

Publié : ven. 14/sept./2007 22:11
par freddix
loool
Je vais voir trouver une version VC7 de la Lib libcp.lib.