Verwendung der "Qdbf" Library unter Windows
-
Hallo zusammen,
ich beschäftige mich gerade mit einem kleinen Projekt, bei welchem .dbf (DBase) -Files ausgelesen werden müssen.
Ich weiß, DBase ist von Vor-Vorgestern, aber die Files sind schon vorhanden, und sollen einfach wiederverwendet werden.
Nun bin ich auf die Bibliothek "Qdbf" ( http://code.google.com/p/qdbf/ ) gestoßen, die unter Mac OS X auch hervorragend funktioniert.
Unter Windows (7) bekomme ich aber hunderte Warnings und am Schluss den Fehler:release\moc_qdbftablemodel.cpp:48:28: Fehler: Definition des statischen Datenele mentes »QDbf::QDbfTableModel::staticMetaObjectExtraData« einer »dllimport«-ierte n Klasse
Was will mir diese Meldung sagen?
Ich will doch keine .dll importieren, sondern hab doch die Quelle der Lib vorliegen!?Das (unter OS
funktionierende Bsp. ist folgendes:
#include "qdbftable.h" #include "qdbfrecord.h" #include <QtGui> int main(int argv, char **args) { QApplication app(argv, args); QTextEdit textEdit; textEdit.show(); QDbf::QDbfTable table; if (!table.open("datei.dbf")) { qDebug() << "file open error"; } QString output; while (table.next()) { QDbf::QDbfRecord record = table.record(); for (int i = 0; i < record.count(); ++i) { if(!(record.value(i).toString().trimmed()=="")) { if(record.fieldName(i)=="NACHNAME") { output.append(record.fieldName(i)); output.append(QLatin1String(": ")); output.append(record.value(i).toString().trimmed()); output.append(QLatin1String("; \n")); } if(record.fieldName(i)=="VORNAME") { output.append(record.fieldName(i)); output.append(QLatin1String(": ")); output.append(record.value(i).toString().trimmed()); output.append(QLatin1String("; \r \n")); } } } qDebug() << output; } table.close(); textEdit.setText(output); return app.exec(); }
Es liegt im gleichen Verzeichnis wie die Header-/Quelldateien von qdbf.
Könnt ihr das unter Windows kompilieren? Wo liegt da der Fehler?Grüße
JulianPS: Von qdbf gibt's auch eine .dll. Ist es einfacher, diese zu nutzen? Geht sowas? Soweit gesehen habe, benötigt man anscheinend eine .lib statt einer .dll ...