#include #include #define __STDTYPES_CPP #include #include #include #if XVT_OS != XVT_OS_SCOUNIX #include #include #endif #include #include #include #define REFKEY "CAMPOKEY" #define VERKEY "ìpÙˆ¬cê<" long stdlevel ; int get_serial_number() { #if XVT_OS != XVT_OS_SCOUNIX const int status = HL_LOGIN(ModAd, DONT_CARE, REFKEY, VERKEY); if (status != STATUS_OK) return -1; #endif return getser(); } void init_global_vars() { CHECK(prefhndl == NULL, "Can't init global vars two times"); prefhndl = new TPrefix; // prefhndl->set("DEF"); prefhndl->set(""); stdlevel = prefhndl->filelevel(); FileDes d; CGetFile(LF_DIR, &d, _nolock, NORDIR); long maxfdir = d.EOX; prefhndl->set("DEF"); CGetFile(LF_DIR, &d, _nolock, NORDIR); if (d.EOD > maxfdir) maxfdir = d.EOD; // isjournal = *((bool *) CGetConf(JOURNALING)); isjournal = FALSE; openf = new isfdptr[maxfdir]; openrec = new TRectype*[maxfdir]; for (long i = 0; i < maxfdir; i++) { openf[i] = NULL; openrec[i] = NULL; } #if XVT_OS == XVT_OS_SCOUNIX const bool muflag = CGetAut(MUAUT); if (SerNo /* && fexist("net.ini") */ && !muflag) fatal_box("Abnormal termination: check protection or serial number\n"); #endif } void free_global_vars() { #if XVT_OS != XVT_OS_SCOUNIX HL_LOGOUT(); #endif if (prefhndl != NULL) { delete openf; delete openrec; delete prefhndl; } } #ifndef FOXPRO #include void* operator new(size_t size) { void* mem = (void*)xvt_fmalloc(size); if (mem == NULL) fatal_box("Out of memory: can't allocate %u bytes", size); return mem; } void operator delete(void* ptr) { CHECK(ptr, "Can't delete a NULL pointer!"); xvt_ffree((char*)ptr); } #endif // FOXPRO