website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » Y-a-t'il possibilité de faire une library système en C sur Os4


Posté : 27-05-2015 16:49 icone du post

>Avec l'information Où se trouve le LIB_Init pour que j'y mette mes librairies utilisées et le Expunge pour libérer le tout et aussi où je met mes fonctions.

Je te l'ai déjà dit regarde dans sur aminet/SimpleDT library dans simpleDT6.c
Il s'y trouve le LIB_Init(void *exec) qui fait appel à ton OpenAmigaLibraries()
Idem pour LIB_Expunge() qui fait appel à ton CloseAmigaLibraries();

réécris juste OpenAmigaLibraries() et CloseAmigaLibraries(); selon tes besoins

tu peut utiliser le SimpleDT_lib.c comme header de ta library sans changements
sauf
#define NAMETXT "SimpleDT"
#define VERSION 1
#define REVISION 0
#define DATETXT "18.04.2013"
#define VERSTXT "1.0"
à adapter à ta library

Alain

/*=================================================================*/
BOOL OpenAmigaLibraries()
{
/* Initialize the needed libraries */

#if !defined(__AROS__)
LIBOPEN(DOSBase,dos.library,36)

LIBOPEN(UtilityBase,utility.library,0);
LIBOPEN(DataTypesBase,datatypes.library,39)
if (OpenDevice(TIMERNAME, UNIT_MICROHZ, (struct IORequest *)&tr, 0L) != 0)
return(FALSE);
TimerBase = (struct Device *) tr.tr_node.io_Device;
__UtilityBase=UtilityBase;
#ifdef OS4
LIBOPEN4(IExec,SysBase)

LIBOPEN(NewlibBase,newlib.library, 52)
LIBOPEN4(INewlib,NewlibBase)

LIBOPEN4(IDOS,DOSBase)
LIBOPEN4(IUtility,UtilityBase)
LIBOPEN4(IDataTypes,DataTypesBase)

LIBOPEN4(ITimer,TimerBase);
#endif

#endif
return(TRUE);
}
/*=========================================================================== ===========*/
void CloseAmigaLibraries()
{
#ifdef OS4
LIBCLOSE4(INewlib)
LIBCLOSE(NewlibBase)

LIBCLOSE4(IDOS)
LIBCLOSE4(IDataTypes)
LIBCLOSE4(IUtility)

LIBCLOSE4(ITimer)
#endif

LIBCLOSE(DOSBase)
LIBCLOSE(UtilityBase)
CloseDevice((struct IORequest *)&tr);
}
/*=================================================================*/
void LIB_Open()
{
;
}
/*=================================================================*/
BOOL LIB_Init(void *exec)
{

#ifdef __amigaos4__
IExec =exec;
if (IExec ==NULL) return(FALSE);
SysBase =(void*)IExec->Data.LibBase;
#else
SysBase =exec;
#endif

if(OpenAmigaLibraries()==FALSE) return(FALSE);
REM(LIB_Init...)
return(TRUE);
}
/*=================================================================*/
void LIB_Close()
{
;
}
/*=================================================================*/
void LIB_Expunge()
{
CloseAmigaLibraries();
}
Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig

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