Hello,

I would like to reuse my dbf files. I would like to use this cdfapi.dll in my A7 (may upgrade to A8Pro) project. Does anyone know if I can call a dbf file from a dll using C like this example from https://www.whitetown.com/cdbfapi/docs/c/ ??? Thanks for any guidance, tips, etc.

extern "C" {

cdbfapiPlus* cdbfapiCreate();
void cdbfapiRelease(cdbfapiPlus* handle);

void initLibrary(cdbfapiPlus* handle, int magicNumber, char *email);

BOOL openDBFfile(cdbfapiPlus* handle, char *filename);
void closeDBFfile(cdbfapiPlus* handle);

int recCount(cdbfapiPlus* handle);
int fieldCount(cdbfapiPlus* handle);

BOOL getRecord(cdbfapiPlus* handle, int recno);
BOOL readRecord(cdbfapiPlus* handle, int recno);
BOOL writeRecord(cdbfapiPlus* handle, int recno);

BOOL readField(cdbfapiPlus* handle, int recno, int fieldno);
BOOL writeField(cdbfapiPlus* handle, int recno, int fieldno);

int indexOfField(cdbfapiPlus* handle, char* fieldname);

char* getString(cdbfapiPlus* handle, int fieldno);
double getValue(cdbfapiPlus* handle, int fieldno);
struct tm getDateTime(cdbfapiPlus* handle, int fieldno);
__int64 getTicks(cdbfapiPlus* handle, int fieldno);

int getMemoBuf(cdbfapiPlus* handle, int fieldno, char **output);

BOOL isMemoField(cdbfapiPlus* handle, int fieldno);
BOOL isNumericField(cdbfapiPlus* handle, int fieldno);
BOOL isDateField(cdbfapiPlus* handle, int fieldno);

BOOL isCurrentDeleted(cdbfapiPlus* handle);
BOOL isDeleted(cdbfapiPlus* handle, int fieldno);

void clearRecord(cdbfapiPlus* handle);
void clearField(cdbfapiPlus* handle, int fieldno);

void setFieldString(cdbfapiPlus* handle, int fieldno, char* string);
void setFieldDouble(cdbfapiPlus* handle, int fieldno, double value);
void setField(cdbfapiPlus* handle, int fieldno, char* string, double value);

void setMemoBuf(cdbfapiPlus* handle, int fieldno, char *input, int len);

BOOL markAsDeleted(cdbfapiPlus* handle, int fieldno);
BOOL recallDeleted(cdbfapiPlus* handle, int fieldno);

BOOL deleteRecord(cdbfapiPlus* handle, int recno);
BOOL appendRecord(cdbfapiPlus* handle, BOOL blankrecord);
BOOL insertRecord(cdbfapiPlus* handle, int recno, BOOL blankrecord);

void setOrder(cdbfapiPlus* handle, char* fieldlist);
void setOrderA(cdbfapiPlus* handle, char* fields[]);
void unsetOrder(cdbfapiPlus* handle);
void descendingMode(cdbfapiPlus* handle, BOOL descending);

void setFilter(cdbfapiPlus* handle, char* expression);
void unsetFilter(cdbfapiPlus* handle);
void caseSensitiveMode(cdbfapiPlus* handle, BOOL sensitive);

BOOL pack(cdbfapiPlus* handle);
BOOL truncate(cdbfapiPlus* handle, int recno);
BOOL zap(cdbfapiPlus* handle);

int fileType(cdbfapiPlus* handle);
char* filetypeAsText(cdbfapiPlus* handle);

int recordLength(cdbfapiPlus* handle);
char* lastUpdated(cdbfapiPlus* handle);
int headerSize(cdbfapiPlus* handle);

char* filename(cdbfapiPlus* handle);
char* filenameMemo(cdbfapiPlus* handle);
char* driverName(cdbfapiPlus* handle);

void resetLastRecord(cdbfapiPlus* handle);

char* fieldName(cdbfapiPlus* handle, int fieldno);
int fieldData(cdbfapiPlus* handle, int fieldno, char **output);
char fieldType(cdbfapiPlus* handle, int fieldno);
int fieldLength(cdbfapiPlus* handle, int fieldno);
int fieldDecimal(cdbfapiPlus* handle, int fieldno);

char* typeAsText(char c);

void setEncoding(cdbfapiPlus* handle, int e);
void setDateFormat(cdbfapiPlus* handle, char* format);
void setDateDelimiter(cdbfapiPlus* handle, char delimiter);

void setReadOnly(cdbfapiPlus* handle, BOOL value);
BOOL isReadOnly(cdbfapiPlus* handle);

BOOL prepareNewTable(cdbfapiPlus* handle, int fileType);
BOOL prepareNewTableX(cdbfapiPlus* handle, int fileType, int memoSize, char *driver);

void addField(cdbfapiPlus* handle, char* fieldname, char fieldType, int length);
void addFieldX(cdbfapiPlus* handle, char* fieldname, char fieldType, int length, int decimal);

BOOL createTable(cdbfapiPlus* handle, char* filename);
BOOL createAndOpenTable(cdbfapiPlus* handle, char* filename);

void setByte(cdbfapiPlus* handle, int offset, char b);
char getByte(cdbfapiPlus* handle, int offset);

}


Some things are harder said than done, some not!