Aide - Recherche - Membres - Calendrier
Version complète : [RESOLU] Utilisation de MemGluePtrNew en PNO
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Fredouille.95
Bonjour,

Voici mon problème du jour, toujours sous PODS :

Mon appli tourne lentement en 68K. Je décide donc de migrer doucement vers le code ARM natif.
Je crée donc un projet PNO.
J'y ajoute mes anciens fichiers.
Je compile pour voir les premiers problèmes et là, le compilation ne trouve plus de référence pour MemGlePtrNew.

Heu...c'est normal ça ???
Comment avez-vous surmonter le problème ?

Merci icon_biggrin.gif
jeep
Apparemment, MemGluePtrNew fait partis intégrante de la librairie Glue, qui est une librairie statique en 68k, donc qui ne peut être utilisée dans du code ARM (puisque les deux ne peuvent pas être linkées ensemble)
Le seul moyen de l'utiliser est semble-t-il de passer un pointeur vers cette fonction depuis le code 68k, et l'appeler par un callback (je n'ai pas tout compris, mais une recherche google te donne quelques liens vers des forums qui en parlent … en anglais)
Sinon, pourquoi ne pas utiliser MemHandleNew ?
Fredouille.95
Pour casser la barrière des 64k.
J'essaie un code utilisant MemChunkNew...

Edit :

... Et pour remplacer MemGluePtrNew, j'utilise le code écrit pour Power48. Et qui marche !!

...
SysAppInfoPtr SysGetAppInfo(SysAppInfoPtr *uiAppPP, SysAppInfoPtr *actionCodeAppPP)
SYS_TRAP(sysTrapSysGetAppInfo);
#define memNewChunkFlagAllowLarge 0x1000

Err MemPtrNewLarge(UInt32 size, void **newPtr)
{
SysAppInfoPtr blankAppInfoP;
UInt16 ownerID;

ownerID = SysGetAppInfo(&blankAppInfoP, &blankAppInfoP)->memOwnerID;

*newPtr = MemChunkNew(0, size, ownerID | memNewChunkFlagNonMovable | memNewChunkFlagAllowLarge);

if (*newPtr == NULL) return memErrNotEnoughSpace;

return errNone;
}
...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.