Qdbf unter Windows
Verfasst: 17. Februar 2013 15:51
Hallo ihr,
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:
Was will mir diese Meldung sagen?
Ich will doch keine .dll importieren, sondern hab doch die Quelle der Lib vorliegen!?
Das (unter OS X) funktionierende Bsp. ist folgendes:
main.cpp:
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
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 ...
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 ...