cdbfapiPlus (C++) for Windows
class __declspec(dllexport) cdbfapiPlus
{
public:
cdbfapiPlus();
void initLibrary(int magicNumber, char *email);
BOOL openDBFfile(char* filename);
void closeDBFfile();
int recCount();
int fieldCount();
BOOL getRecord(int recno);
BOOL readRecord(int recno);
BOOL writeRecord(int recno);
BOOL readField (int recno, int fieldno);
BOOL writeField(int recno, int fieldno);
int indexOfField(char* fieldname);
char* getString(int fieldno);
double getValue(int fieldno);
struct tm getDateTime(int fieldno);
__int64 getTicks(int fieldno);
char* getMemoBuf(int fieldno, int *len);
BOOL isMemoField(int fieldno);
BOOL isNumericField(int fieldno);
BOOL isDateField(int fieldno);
BOOL isDeleted();
BOOL isDeleted(int recno);
void clearRecord();
void clearField(int fieldno);
void setField(int fieldno, char* string);
void setField(int fieldno, double value);
void setField(int fieldno, char* string, double value);
void setMemoBuf(int fieldno, char *string, int len);
BOOL markAsDeleted(int recno);
BOOL recallDeleted(int recno);
BOOL deleteRecord(int recno);
BOOL appendRecord(BOOL blankrecord);
BOOL insertRecord(int recno, BOOL blankrecord);
void setOrder(char* fieldlist);
void setOrderA(char* fields[]);
void unsetOrder();
void descendingMode(BOOL descending);
void setFilter(char* expression);
void unsetFilter();
void caseSensitiveMode(BOOL sensitive);
BOOL pack();
BOOL truncate(int recno);
BOOL zap();
int fileType();
char* filetypeAsText();
int recordLength();
char* lastUpdated();
int headerSize();
char* filename();
char* filenameMemo();
char* driverName();
void resetLastRecord();
char* fieldName(int fieldno);
char fieldType(int fieldno);
int fieldLength(int fieldno);
int fieldDecimal(int fieldno);
static char* typeAsText(char c);
void setEncoding(int e);
void setDateFormat(char* format);
void setDateDelimiter(char delimiter);
void setReadOnly(BOOL value);
BOOL isReadOnly();
BOOL prepareNewTable(int fileType);
BOOL prepareNewTable(int fileType, int memoSize, char* driver);
void addField(char* fieldname, char fieldType, int length);
void addField(char* fieldname, char fieldType, int length, int dec);
BOOL createTable(char* filename);
BOOL createAndOpenTable(char* filename);
void setByte(int offset, char b);
char getByte(int offset);
};