C-function in einem Constructor aufrufen
Verfasst: 18. November 2007 22:39
hallo,
ist es generell möglich, innerhalb eines Konstruktors eine C-function aufzurufen, die in einer anderen Datei definiert ist?
Folgende Situation liegt vor:
Ich habe C-Code, der in meinem Qt-Programm verwendet werden soll. Das h-File fname.h:
Das C-File fname.c dazu:
und hier noch die relevante Implementierung, fparams.cpp, in meinem Qt-Programm:
Die Fehlermeldung des Compilers: undefined reference to 'get_config_ptr()'
Ich verstehe nicht, warum der Compiler get_config_ptr() nicht kennt. Es ist doch fname.h als Include angegeben.
Der Versuch, die ersten beiden Zeilen von fparams.cpp in die Klassendefinition zu verschieben, ergibt die gleiche Fehlermeldung.
Das Problem ist vermutlich nicht Qt-spezifisch, aber vielleicht kann es ja dennoch hier gelöst werden.
Danke für Tipps
ist es generell möglich, innerhalb eines Konstruktors eine C-function aufzurufen, die in einer anderen Datei definiert ist?
Folgende Situation liegt vor:
Ich habe C-Code, der in meinem Qt-Programm verwendet werden soll. Das h-File fname.h:
Code: Alles auswählen
...
typedef struct{
int nflag;
...
} F_CONFIG;
F_CONFIG * get_config_ptr();
Code: Alles auswählen
#include "fname.h"
static F_CONFIG b_config; // das hat seine Gründe
F_CONFIG * get_config_ptr()
{
return (&b_config);
}
Code: Alles auswählen
#include "fname.h"
F_CONFIG * pb_config;
.. Konstruktor einer Klasse :
{ ...
pb_config = get_config_ptr(); <------ hier meldet der Compiler einen Fehler
... }
..::on_OKButton_clicked()
{ ...
pb_config->nflag = 0;
...
}
Ich verstehe nicht, warum der Compiler get_config_ptr() nicht kennt. Es ist doch fname.h als Include angegeben.
Der Versuch, die ersten beiden Zeilen von fparams.cpp in die Klassendefinition zu verschieben, ergibt die gleiche Fehlermeldung.
Das Problem ist vermutlich nicht Qt-spezifisch, aber vielleicht kann es ja dennoch hier gelöst werden.
Danke für Tipps