campo-sirio/include/stdtypes.cpp
guy 45b1afe173 Patch level :
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Risolti conflitti


git-svn-id: svn://10.65.10.50/trunk@8413 c028cbd2-c16b-5b4b-a496-9718f37d4682
1999-07-21 09:41:56 +00:00

116 lines
2.5 KiB
C++
Executable File

#define __STDTYPES_CPP
#include <applicat.h>
#include <dongle.h>
#include <prefix.h>
HIDDEN long _stdlevel = 0;
// @doc INTERNAL
// @func Ritorna il livello degli archivi
long get_std_level()
{ return _stdlevel; }
// @func Setta il livello degli archivi
void set_std_level(const long l)
{ _stdlevel = l; }
// @doc INTERNAL
// @func Ritorna il numero di serie della chiave
//
// @rdesc Numero di serie della chiave
int get_serial_number()
{
TDongle& din = dongle();
bool ok = din.ok();
if (!ok)
ok = din.login();
return ok ? int(din.number()) : -1;
}
bool test_assistance_year()
{
#ifndef _DEMO_
int dongle_year = TDate(TODAY).year();
if (get_serial_number() > 0)
{
const int new_year = dongle().year_assist();
if (new_year >= 1997 && new_year <= dongle_year)
dongle_year = new_year;
}
int app_year, dum1, dum2, dum3;
bool ok = TApplication::get_version_info(app_year, dum1, dum2, dum3);
if (ok)
ok = app_year <= dongle_year;
return ok;
#else
return TRUE;
#endif // _DEMO_
}
// @doc INTERNAL
// @func Inizilizza le variabili globali
void init_global_vars()
{
TPrefix& pref = prefix_init();
pref.set(""); // Dati standard
_stdlevel = pref.filelevel();
pref.set("DEF"); // Ditta corrente
}
// @doc INTERNAL
// @func Dealloca le variabili globali
void free_global_vars()
{
destroy_dongle();
prefix_destroy();
}
#if !defined(FOXPRO) && (XVT_OS != XVT_OS_WIN32)
// @doc EXTERNAL
// @func Operatore per la creazione di un oggetto (sostituisce operatore C++)
//
// @rdesc Ritorna il puntatore all'oggetto creato
void* operator new(size_t size)
// @comm Per maggiori informazioni fare riferimento all'omonimo comando sull'help
// in linea del C++.
// <nl>Questa funzione viene implementata se non si opera in ambiante FoxPro.
{
void* mem = (void*)malloc(size);
if (mem == NULL)
fatal_box("Out of memory: can't allocate %u bytes", size);
return mem;
}
// @doc EXTERNAL
// @func Operatore per la distruzione di un oggetto (sostituisce operatore C++)
void operator delete(
void* ptr) // @parm Puntatore all'oggetto da distruggere
// @comm Per maggiori informazioni fare riferimento all'omonimo comando sull'help
// in linea del C++.
// <nl>Nel caso venga passato un puntatore NULL viene emesso un <f CKECK>.
// <nl>Questa funzione viene implementata se non si opera in ambiante FoxPro.
{
CHECK(ptr, "Can't delete a NULL pointer");
free(ptr);
}
#endif // FOXPRO