Qdbf unter Windows

Alles rund um die Programmierung mit Qt
Antworten
Bitschubser
Beiträge: 8
Registriert: 5. Januar 2013 18:03

Qdbf unter Windows

Beitrag von Bitschubser »

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:

Code: Alles auswählen

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 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();

}
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 ...
Antworten