website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » creer une library en c


Posté : 05-12-2012 16:17 icone du post

Hello sinisrus

Regarde dans Aminet/Wazp3D/

A) ecris tes fonctions dans un fichier séparé et touche un minimum à ces 2 fichiers
ci dessous

B) Wazp3D_lib_ppc.c
La partie à modifier est ça

/*=========================================================================== =======*/
#!include! /* for warpd3 structures definitions */
#!include! /* for struct Warp3DIFace */
#!include! "Warp3D_protos.h" /* for classic warpd3 functions prototypes */
/*=========================================================================== =======*/
BOOL WAZP3D_Init(void *exec);
void WAZP3D_Open();
void WAZP3D_Close();
void WAZP3D_Expunge();
/*=========================================================================== =======*/
#define VERSION 53 /* We keep original Warp3D's version/name/date */
#define REVISION 1
#define DATE "24.7.2008"
#define LIBNAME "Warp3D.library"
#define VERS "Warp3D.library 53.1"
#define VSTRING "Warp3D.library 53.1 (24.7.2008)\r\n"
#define VERSTAG "\0$VER: Warp3D.library 53.1 (24.7.2008)"
#define FULLNAME VERS " " DATE " OS4.1 PPC"

changer les valeurs des #define selon ta lib
WAZP3D_Init est ta fonction qui initialise ta library au départ (openlib ,allloc, etc....
WAZP3D_Expunge qui ferme tout quand plus personne ne sert de ta library (closelib free etc..)
void WAZP3D_Open();void WAZP3D_Close(); actions à faire (cad généralement rien) quand une des applis utilisant ta lib l'ouvre ou la ferme (cad il peut rester d'autres progs qui l'utilisent encore donc attention à ne pas toucher à des trucs globaux)

C) Wazp3D_functions_glue_ppc.h
1) Il y a dedans des glue fonctions qui font le wrappage entre les appels de fonction vue depuis la library et les fonctions C que t'a écrites
2) une jump table

options de compil :
gcc -noixemul -nostartfiles


Voilà

Alain Thellier



Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1423&forum=14