USERLIB DECLS TO CSharp (Unity 3D) converter

Blitz3D Forums/Blitz3D Userlibs/USERLIB DECLS TO CSharp (Unity 3D) converter

ZJP(Posted 2015) [#1]
Hi,

;
; Blitz3D USERLIB DECLS (DLL) TO CSharp (Unity 3D) (c) 2015  ZJP  
; PUBLIC DOMAIN 
; 
Dim parameter$(10) 
Global i% 
Global DECLS_INPUT_FILE$ 
Global CPP_OUTPUT_FILE$ 
Global DECLS_FIRST_CAR$ 
Global line_input_file$ 
Global Found_char% 
Global Alias_Dll$ 
Global middle$ 
Global tempo_string$ 
Global car$ 
Global nb_param% 
Global DLL_lib$ 
Global CALLING_example$ 
Global tempo$ 
Global PROC_Def$ 
Global Position% 
Global Var_TYPE$ 
Global bof$ 
Global ok$ 
; 

; Fichier DECLS - DECLS File <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Change this !!!
DECLS_INPUT_FILE = "Cheetah2.DECLS" 

; Lines begin with...<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Change this !!!
DECLS_FIRST_CAR = "xdb" 

; DLL Name<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Change this !!!
DLL_lib = "Cheetah2"


CPP_OUTPUT_FILE = DLL_lib + ".cs" 
; 
file_in%  = OpenFile(DECLS_INPUT_FILE) 
file_out% = WriteFile(CPP_OUTPUT_FILE) 
; 
WriteLine(file_out,"")
WriteLine(file_out,"using UnityEngine;")
WriteLine(file_out,"using System.Collections;")
WriteLine(file_out,"using System.Runtime.InteropServices;")
WriteLine(file_out,"")
WriteLine(file_out,"public class " + DLL_lib + " : MonoBehaviour")
WriteLine(file_out,"{")


; 
While Not Eof(file_in) 

   line_input_file$ = ReadLine$( file_in ) 

	; Remove all spaces in the input line 
	tempo="" 
	For i=1 To Len(line_input_file$) 
		car$=Mid(line_input_file$,i,1) 
		If car$<>" " Then tempo$=tempo$+car$ 
	Next 
	line_input_file$=tempo$ 

	; Select only the line began with "px" in this example 
   If Left(line_input_file, Len(DECLS_FIRST_CAR)) <> DECLS_FIRST_CAR Then Goto suivant 
	

   ;  find the Alias 
   Found_char = Instr(line_input_file, ":", 1) 
   Alias_Dll = Mid(line_input_file, Found_char + 1) 


;   CALLING_example = "[DllImport (" + Chr(34) + DLL_lib + Chr(34) + ", EntryPoint = " + Alias_Dll + ")]" + Chr(13) + Chr(9) + Chr(9) + "private static extern "
   CALLING_example = Chr(9)+ "[DllImport (" + Chr(34) + DLL_lib + Chr(34) + ", EntryPoint = " + Alias_Dll + ")] private static extern "
   middle = " " 
    
   ; Var_TYPE >> % # Or $ * 
   Found_char = Instr(line_input_file, "(", 1) 
   Var_TYPE = Mid(line_input_file, Found_char - 1, 1) 
  
   ; % Integer 
   If Var_TYPE = "%" Then 
       tempo = Left(line_input_file, Found_char - 2) 
       CALLING_example = CALLING_example + "int " 
   End If 
    
   ; # Float 
   If Var_TYPE = "#" Then 
       tempo = Left(line_input_file, Found_char - 2) 
       CALLING_example = CALLING_example + "float " 
   End If 
    
   ; $ STRING 
   If Var_TYPE = "$" Then 
       tempo = Left(line_input_file, Found_char - 2) 
       CALLING_example = CALLING_example + "string " 
    End If 
    
   ; * POINTER 
   If Var_TYPE = "*" Then 
       tempo = Left(line_input_file, Found_char - 2) 
       CALLING_example = CALLING_example + "ptr " 
    End If 
    
   ; void 
   If Var_TYPE <> "#" And Var_TYPE <> "%" And Var_TYPE <> "$" And Var_TYPE <> "*" Then 
       tempo = Left(line_input_file, Found_char - 1) 
       CALLING_example = CALLING_example + "void " 
   End If 
    
    
   ; Nbr of parameters 
   If Mid(line_input_file, Found_char + 1, 1) = ")" Then 
       middle = ");" 
       Goto continue 
   End If 
    
   ; parameters 
   ; remove the ( ) 
   tempo_string = "" 
   nb_param = 0 
   For i = Found_char + 1 To 1000 
       car = Mid(line_input_file, i, 1) 
           If car = "," Then 
               nb_param = nb_param + 1 
               parameter(nb_param) = Trim(tempo_string) 
               car = "" 
               tempo_string = "" 
           End If 
           If car = ")" Then 
               nb_param = nb_param + 1 
               parameter(nb_param) = Trim(tempo_string) 
               tempo_string = "" 
               Exit 
           End If 
       tempo_string = tempo_string + car 
   Next 
    
   ; parameters 
   middle = " " 
   For i = 1 To nb_param 
       ; % interger 
       If Right(parameter(i), 1) = "%" Then 
           ok = " int " + Left(parameter(i), Len(parameter(i)) - 1) + "," 
       End If 
       ; * pointer 
       If Right(parameter(i), 1) = "*" Then 
           ok = " System.IntPtr " + Left(parameter(i), Len(parameter(i)) - 1) + "," 
       End If 
		; # float 
       If Right(parameter(i), 1) = "#" Then 
           ok = " float " + Left(parameter(i), Len(parameter(i)) - 1) + "," 
       End If 
		; $ string 
       If Right(parameter(i), 1) = "$" Then 
           ok = " string " + Left(parameter(i), Len(parameter(i)) - 1) + "," 
       End If 
       middle = middle + ok 
       ok = "" 
   Next 
   ; remove the last ";" 
	If Len(middle)>1 Then middle=Trim(middle) 
   middle = Left(middle, Len(middle) - 1) + ");" 

.continue 

  WriteLine( file_out,Chr(9)+"// Original DECLS line ==> " + line_input_file) 
  WriteLine( file_out,CALLING_example + tempo + "(" + Trim(middle)) 

.suivant 
Wend 
; 
 
; 
WriteLine(file_out,"")
WriteLine(file_out,"")
WriteLine(file_out,Chr(9)+"void Start ()")
WriteLine(file_out,Chr(9)+"{")
WriteLine(file_out,Chr(9)+"}")
WriteLine(file_out,"}")
CloseFile file_in 
CloseFile file_out 
End


Example of convertion


using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;

public class Cheetah2 : MonoBehaviour
{
	//***********************************************************************************************************
	//                                            CHEETAH2 DECLARATIONS                                         *
	//***********************************************************************************************************
	// DATABASE ROUTINES - Creation/Opening/Closing                                                             *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBCREATE_Z")] private static extern void xdbCreate(string dbFile, string AllFields);
	[DllImport ("Cheetah2", EntryPoint = "XDBCREATEEXTENDED_Z")] private static extern void xdbCreateExtended(string tFileName, string AllFields, int MemoBlockSize, int Algorithm, string EncryptionKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBOPEN_Z")] private static extern int xdbOpen(string dbFile, string EncryptionKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBOPENEX_Z")] private static extern int xdbOpenEX(string dbFile, int AccessMode, int ShareMode, string EncryptionKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBALIAS_Z")] private static extern int xdbAlias(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBSETALIAS_Z")] private static extern void xdbSetAlias(int dbHandle, string AliasName);
	[DllImport ("Cheetah2", EntryPoint = "XDBCREATEFIELDS_Z")] private static extern void xdbCreateFields(string mFileName);
	[DllImport ("Cheetah2", EntryPoint = "XDBCREATEFIELDSEXTENDED_Z")] private static extern void xdbCreateFieldsExtended(string mFileName, int MemoBlockSize, int Algorithm, string EncryptionKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBADDFIELD_Z")] private static extern void xdbAddField(string FieldInfoString);
	[DllImport ("Cheetah2", EntryPoint = "XDBCLOSE_Z")] private static extern void xdbClose(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBCLOSEALLINDEXES_Z")] private static extern void xdbCloseAllIndexes(int dbHandle);
	//***********************************************************************************************************
	// DATABASE ROUTINES - MultiUser % Locking                                                                  *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBMULTIUSER_Z")] private static extern void xdbMultiUser(int TrueFalse, int NumRetries, int WaitTime);
	[DllImport ("Cheetah2", EntryPoint = "XDBFAILEDLOCKINFO_Z")] private static extern void xdbFailedLockInfo(int DBFhandle, int zReason, int zUsername, int zWorkstation, int zLockDate, int zLockTime);
	[DllImport ("Cheetah2", EntryPoint = "XDBSETEXCLUSIVELOCK_Z")] private static extern int xdbSetExclusiveLock(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBREMOVEEXCLUSIVELOCK_Z")] private static extern void xdbRemoveExclusiveLock(int DBFhandle, int LOCK_NUM);
	[DllImport ("Cheetah2", EntryPoint = "XDBSETEDITLOCK_Z")] private static extern int xdbSetEditLock(int DBFhandle, int RecordNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBREMOVEEDITLOCK_Z")] private static extern void xdbRemoveEditLock(int DBFhandle, int LOCK_NUM);
	[DllImport ("Cheetah2", EntryPoint = "XDBISEDITLOCK_Z")] private static extern int xdbIsEditLock(int DBFhandle, int RecordNumber);
	//***********************************************************************************************************
	// DATABASE ROUTINES - Adding/Deleting Records                                                              *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBADDRECORD_Z")] private static extern void xdbAddRecord(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBAPPENDRECORD_Z")] private static extern void xdbAppendRecord(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBCLEARBUFFER_Z")] private static extern void xdbClearBuffer(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBPUTRECORD_Z")] private static extern void xdbPutRecord(int dbHandle, int RN);
	[DllImport ("Cheetah2", EntryPoint = "XDBGETRECORD_Z")] private static extern void xdbGetRecord(int dbHandle, int RN);
	[DllImport ("Cheetah2", EntryPoint = "XDBDELETERECORD_Z")] private static extern void xdbDeleteRecord(int DBFhandle, int RecordNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBRECALLRECORD_Z")] private static extern void xdbRecallRecord(int DBFhandle, int RecordNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBDELETED_Z")] private static extern int xdbDeleted(int DBFhandle, int RecordNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBFLUSHDATABASE_Z")] private static extern void xdbFlushDatabase(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBPACK_Z")] private static extern void xdbPack(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBZAP_Z")] private static extern void xdbZap(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBRECORDBUFFER_Z")] private static extern int xdbRecordBuffer(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBSPEEDAPPEND_Z")] private static extern void xdbSpeedAppend(int DBFhandle, int TrueFalse);
	//***********************************************************************************************************
	// DATABASE ROUTINES - Database Information                                                                 *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBRECORDCOUNT_Z")] private static extern int xdbRecordCount(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDCOUNT_Z")] private static extern int xdbFieldCount(int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDNUMBER_Z")] private static extern int xdbFieldNumber(int dbHandle, string FieldName);
	[DllImport ("Cheetah2", EntryPoint = "XDBRECORDNUMBER_Z")] private static extern int xdbRecordNumber(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBLASTUPDATED_Z")] private static extern void xdbLastUpdated(int dbHandle, int YearNr, int MonthNr, int DayNr);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDINFO_Z")] private static extern void xdbFieldInfo(int DBFhandle, int FieldNumber, int zFieldName, int zFieldType, int FieldLength, int FieldDecimals);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDNAME_Z")] private static extern int xdbFieldName(int DBFhandle, int FieldNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDTYPE_Z")] private static extern int xdbFieldType(int DBFhandle, int FieldNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDLENGTH_Z")] private static extern int xdbFieldLength(int DBFhandle, int FieldNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDDECIMALS_Z")] private static extern int xdbFieldDecimals(int DBFhandle, int FieldNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBDATABASEHANDLES_Z")] private static extern void xdbDatabaseHandles(string DBFfilename, int CheetahHandle, int WindowsHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBINDEXHANDLES_Z")] private static extern void xdbIndexHandles(string IDXfilename, int CheetahHandle, int WindowsHandle);
	//***********************************************************************************************************
	// DATABASE ROUTINES - Navigating the Database                                                              *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBEOF_Z")] private static extern int xdbEOF(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBBOF_Z")] private static extern int xdbBOF(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBMOVEFIRST_Z")] private static extern void xdbMoveFirst(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBMOVENEXT_Z")] private static extern void xdbMoveNext(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBMOVELAST_Z")] private static extern void xdbMoveLast(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBMOVEPREV_Z")] private static extern void xdbMovePrev(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBSKIPDELETED_Z")] private static extern void xdbSkipDeleted(int DBFhandle, int TrueFalse);
	[DllImport ("Cheetah2", EntryPoint = "XDBKEYPOSITION_Z")] private static extern int xdbKeyPosition(int IDXhandle, int KeyPosition);
	//***********************************************************************************************************
	// DATABASE ROUTINES - Assigning Field Values                                                               *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBASSIGNFIELD_Z")] private static extern void xdbAssignField(int dbHandle, string FieldName, int FieldNumber, string FieldString);
	[DllImport ("Cheetah2", EntryPoint = "XDBASSIGNFIELDINT_Z")] private static extern void xdbAssignFieldINT(int dbHandle, string FieldName, int FieldNumber, int FieldInteger);
	[DllImport ("Cheetah2", EntryPoint = "XDBASSIGNFIELDLNG_Z")] private static extern void xdbAssignFieldLNG(int dbHandle, string FieldName, int FieldNumber, int FieldLong);
	[DllImport ("Cheetah2", EntryPoint = "XDBASSIGNFIELDSNG_Z")] private static extern void xdbAssignFieldSNG(int dbHandle, string FieldName, int FieldNumber, float FieldSingle);
	//***********************************************************************************************************
	// DATABASE ROUTINES - Retrieving Field Values                                                              *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDVALUE_Z")] private static extern string xdbFieldValue(int DBFhandle, string FieldName, int FieldCode);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDVALUEINT_Z")] private static extern int xdbFieldValueINT(int DBFhandle, string FieldName, int FieldCode);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDVALUELNG_Z")] private static extern int xdbFieldValueLNG(int DBFhandle, string FieldName, int FieldCode);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDVALUESNG_Z")] private static extern float xdbFieldValueSNG(int DBFhandle, string FieldName, int FieldCode);
	[DllImport ("Cheetah2", EntryPoint = "XDBFIELDPADDING_Z")] private static extern void xdbFieldPadding(int DBFhandle, int TrueFalse);
	//***********************************************************************************************************
	// INDEX ROUTINES - Creation/Opening/Closing                                                                *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBCREATEINDEX_Z")] private static extern void xdbCreateIndex(string iFilename, int dbHandle, string IndexExpression, int Duplicates);
	[DllImport ("Cheetah2", EntryPoint = "XDBOPENINDEX_Z")] private static extern int xdbOpenIndex(string iFilename, int dbHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBCLOSEINDEX_Z")] private static extern void xdbCloseIndex(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBREINDEX_Z")] private static extern void xdbReindex(int DBFhandle, int idxHandle, int ContinueOrError);
	[DllImport ("Cheetah2", EntryPoint = "XDBREINDEXALL_Z")] private static extern void xdbReindexAll(int DBFhandle, int ContinueOrError);
	[DllImport ("Cheetah2", EntryPoint = "XDBSEEK_Z")] private static extern int xdbSeek(int DBFhandle, int idxHandle, string LookForKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBSEEKNEXT_Z")] private static extern int xdbSeekNext(int dbHandle, int idxHandle, string LookForKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBSEEKPARTIAL_Z")] private static extern int xdbSeekPartial(int dbHandle, int idxHandle, string LookForKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBSEEKPARTIALNEXT_Z")] private static extern int xdbSeekPartialNext(int dbHandle, int idxHandle, string LookForKey);
	[DllImport ("Cheetah2", EntryPoint = "XDBSETCALLBACK_Z")] private static extern void xdbSetCallback(int hWnd);
	//***********************************************************************************************************
	// INDEX ROUTINES - Index information                                                                       *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBKEYLENGTH_Z")] private static extern int xdbKeyLength(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBKEYCOUNT_Z")] private static extern int xdbKeyCount(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBKEYUNIQUE_Z")] private static extern int xdbKeyUnique(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBKEYEXPRESSION_Z")] private static extern int xdbKeyExpression(int DBFhandle, int idxHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBMKL_Z")] private static extern void xdbMKL(int LongValue);
	[DllImport ("Cheetah2", EntryPoint = "XDBMKI_Z")] private static extern void xdbMKI(int IntegerValue);
	//***********************************************************************************************************
	// QUERY ROUTINES                                                                                           *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBCREATEQUERY_Z")] private static extern int xdbCreateQuery(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYCONDITION_Z")] private static extern void xdbQueryCondition(int QueryHandle, int JoinPhrase, string FieldName, int Equality, string vParameter1, string vParameter2);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYSORT_Z")] private static extern void xdbQuerySort(int QueryHandle, string FieldName, int SortDirection);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYEXECUTE_Z")] private static extern void xdbQueryExecute(int QueryHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYSUM_Z")] private static extern float xdbQuerySUM_Z(int QueryHandle, string FieldName);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYMIN_Z")] private static extern float xdbQueryMIN_Z(int QueryHandle, string FieldName);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYMAX_Z")] private static extern float xdbQueryMAX_Z(int QueryHandle, string FieldName);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYAVG_Z")] private static extern float xdbQueryAVG_Z(int QueryHandle, string FieldName);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYDISTINCT_Z")] private static extern void xdbQueryDistinct(int QueryHandle, string DistinctFieldName);
	[DllImport ("Cheetah2", EntryPoint = "XDBHTMLSTRIPTAG_Z")] private static extern void xdbHtmlStripTag(int QueryHandle, int TrueFalse);
	[DllImport ("Cheetah2", EntryPoint = "XDBDESTROYQUERY_Z")] private static extern void xdbDestroyQuery(int QueryHandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBQUERYINDEX_Z")] private static extern int xdbQueryIndex(int QueryHandle);
	//***********************************************************************************************************
	// MISCELLANEOUS ROUTINES                                                                                   *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBRESETERROR_Z")] private static extern void xdbResetError();
	[DllImport ("Cheetah2", EntryPoint = "XDBERROR_Z")] private static extern int xdbError();
	[DllImport ("Cheetah2", EntryPoint = "XDBVERSION_Z")] private static extern int xdbVersion();
	[DllImport ("Cheetah2", EntryPoint = "XDBREGISTEREDTO_Z")] private static extern int xdbRegisteredTo();
	[DllImport ("Cheetah2", EntryPoint = "XDBDEBUGMODE_Z")] private static extern void xdbDebugMode(int UserMode);
	[DllImport ("Cheetah2", EntryPoint = "XDBAPPPATH_Z")] private static extern int xdbAppPath();
	[DllImport ("Cheetah2", EntryPoint = "XDBACTIVATE_Z")] private static extern void xdbActivate(int ActivateNumber);
	[DllImport ("Cheetah2", EntryPoint = "XDBFREEDLL_Z")] private static extern void xdbFreeDLL();
	[DllImport ("Cheetah2", EntryPoint = "XDBISENCRYPTED_Z")] private static extern int xdbIsEncrypted(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBENCRYPTIONMETHOD_Z")] private static extern int xdbEncryptionMethod(int DBFhandle);
	[DllImport ("Cheetah2", EntryPoint = "XDBTEMPFILENAME_Z")] private static extern int xdbTempFileName();
	//***********************************************************************************************************
	// DATE ROUTINES                                                                                            *
	//***********************************************************************************************************
	[DllImport ("Cheetah2", EntryPoint = "XDBDAYSAPART_Z")] private static extern int xdbDaysApart(string DateFrom, string DateTo);
	[DllImport ("Cheetah2", EntryPoint = "XDBDAYSINMONTH_Z")] private static extern int xdbDaysInMonth(int Year, int Month);
	[DllImport ("Cheetah2", EntryPoint = "XDBADDDATE_Z")] private static extern void xdbAddDate(string StartDate, int Days);
	[DllImport ("Cheetah2", EntryPoint = "XDBNAMEOFDAY_Z")] private static extern int xdbNameOfDay(string DateCheck);
	[DllImport ("Cheetah2", EntryPoint = "XDBTODAYSDATE_Z")] private static extern int xdbTodaysDate();
	[DllImport ("Cheetah2", EntryPoint = "XDBVALIDDATE_Z")] private static extern int xdbValidDate(string DateCheck);
	[DllImport ("Cheetah2", EntryPoint = "XDBDATETOJULIAN_Z")] private static extern int xdbDateToJulian(string DateString);
	[DllImport ("Cheetah2", EntryPoint = "XDBJULIANTODATE_Z")] private static extern int xdbJulianToDate(int JulianNumber);
	[DllImport ("Cheetah2", EntryPoint = "CTOD_Z")] private static extern int CTOD(string PBDate);
	[DllImport ("Cheetah2", EntryPoint = "DTOS_Z")] private static extern int DTOS(string xDate);
	//***********************************************************************************************************
	const int XDBTRUE               = 1;
	const int XDBFALSE              = 0;
	const int MAX_INDEXES           = 100;
	const int MAX_FIELDS            = 1000;
	const int MAX_CONDITIONS        = 50;
	const int MAX_INDEXKEYS         = 6;
	const int MAX_CHARFIELD_SIZE    = 256;
	const int MAX_NUMFIELD_SIZE     = 20;
	const int ENCRYPT_NONE          = 0;
	const int ENCRYPT_RC4           = 1;
	const int ENCRYPT_KEYEDXOR      = 2;
	const int ENCRYPT_SUPERSCRAMBLE = 3;
	const int QUERY_AND             = 1;
	const int QUERY_OR              = 2;
	const int EQUAL_TO              = 1;
	const int NOT_EQUAL_TO          = 2;
	const int LESS_THAN             = 3;
	const int GREATER_THAN          = 4;
	const int LESS_THAN_EQUAL_TO    = 5;
	const int GREATER_THAN_EQUAL_TO = 6;
	const int CONTAINS              = 7;
	const int BETWEEN               = 8;
	const int SUM                   = 9;
	const int MINIMUM               = 10;
	const int MAXIMUM               = 11;
	const int AVERAGE               = 12;
	const int WILDCARD              = 13;
	const int SORT_ASCEND           = 1;
	const int SORT_DESCEND          = 0;
	const int XDBREADONLY           = 0;
	const int XDBWRITEONLY          = 1;
	const int XDBREADWRITE          = 2;
	const int XDBDENYREADWRITE      = 1;
	const int XDBDENYWRITE          = 2;
	const int XDBDENYREAD           = 3;
	const int XDBDENYNONE           = 4;
	const int XDBUNIQUE_CONTINUE    = 0;
	const int XDBUNIQUE_ERROR       = 1;
	const int FILE_ACCESS_ERROR     = 4000;
	const int INVALID_DATE_FORMAT   = 4001;
	const int FILE_READ_ONLY        = 4002;
	const int FILE_WRITE_ONLY       = 4003;
	const int INVALID_FILENAME      = 4004;
	const int ENGINE_NOT_INITIALIZED = 5000;
	const int FILE_NOT_FOUND        = 5001;
	const int TOO_MANY_FILES_OPEN   = 5002;
	const int INVALID_STRUCTURE     = 5003;
	const int FILE_NOT_OPEN         = 5004;
	const int RECORD_OUT_OF_RANGE   = 5005;
	const int FIELD_NOT_FOUND       = 5006;
	const int INVALID_FILE_HANDLE   = 5007;
	const int INVALID_FIELD_LENGTH  = 5008;
	const int DUPLICATE_ALIAS_NAME  = 5009;
	const int INVALID_ACCESSMODE    = 5010;
	const int INVALID_SHAREMODE     = 5011;
	const int RECORD_BUSY           = 5012;
	const int INCOMPATIBLE_MEMO_FIELDS = 5013;
	const int RECORDSIZE_EXCEEDED      = 5014;
	const int INVALID_ENCRYPTIONKEY    = 5015;
	const int DATABASE_NOT_OPEN        = 7000;
	const int TOO_MANY_INDEXES_OPEN    = 7002;
	const int INVALID_KEY_EXPRESSION   = 7003;
	const int INDEX_NOT_OPEN           = 7004;
	const int INDEX_UNIQUE_KEYS_ONLY   = 7005;
	const int SEEK_NO_INDEX_SET        = 7006;
	const int INDEX_NOT_FOUND          = 7007;
	const int QUERY_NOT_GENERATED      = 9000;
	const int QUERY_INVALID_FIELDNAME  = 9001;
	const int QUERY_INVALID_COMPARISON = 9002;
	const int QUERY_MISSING_DELIMITERS = 9003;
	const int QUERY_MISSING_SEARCHSTRING = 9004;
	const int QUERY_TOO_MANY_EXPRESSIONS = 9005;
	const int QUERY_EXPECTED_NUMERIC_STRING = 9006;
	const int QUERY_ERROR_GETRECORD      = 9007;
	const int QUERY_INVALID_HANDLE       = 9008;
	const int QUERY_INVALID_JOINPHRASE   = 9009;
	const int QUERY_NO_WILDCARD_FOUND    = 9010;
	const int QUERY_INVALID_PARENTHESIS  = 9011;
	//***********************************************************************************************************
	//                                       END OF CHEETAH2 DECLARATIONS                                       *
	//***********************************************************************************************************

	void Start ()
	{
	}
}



From : http://www.blitzbasic.com/Community/posts.php?topic=45509

Have fun