ich beschäftige mich gerade mit einem kleinen Projekt, bei welchem .dbf (DBase) -Files ausgelesen werden müssen.
Ich weiß, DBase ist von Vor-Vorgester, 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:
Code: Alles auswählen
release\moc_qdbftablemodel.cpp:48:28: Fehler: Definition des statischen Datenele
mentes »QDbf::QDbfTableModel::staticMetaObjectExtraData« einer »dllimport«-ierte
n KlasseIch will doch keine .dll importieren, sondern hab doch die Quelle der Lib vorliegen!?
Das (unter OS X) funktionierende Bsp. ist folgendes:
main.cpp:
Code: Alles auswählen
#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();
}Könnt ihr das unter Windows kompilieren? Wo liegt da der Fehler?
Grüße
Julian
PS: 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 ...