B
Hi,
in meiner MDI-Anwendung habe ich C-Funktionen eingebaut. Diese habe ich in der Header-Datei mit
extern "C" {
...
}
deklariert. Da ich noch nicht so erfahren bin, gehe ich mal davon aus, das ist nötig, damit der Compiler/Linker die Funktion findet, die in einer eigenen .c Datei und in die Solution importiert worden ist. C++ erwartet offenbar die Funktionsrümpfe in der Datei <headername>.cpp, die gibts aber nicht. Also als "extern C" deklarieren und es funktioniert.
Das ist aber gar nicht meine Frage, aber wenn das falsch ist, was ich mir da denke, bitte sagen
Das Problem ist zurückzuführen auf eine einfache Multiplikation:
double temp_a = -0.047007008641386287;
double temp_b = 0.0051909733999999999;
double temp_c = temp_a * temp_b;
// temp_c = -0.00024401213147100635024106493586137
Wenn ich das in meiner MDI-Hauptdatei ausführe, ist das Ergebnis richtig. Führe ich es in der C-Datei aus, die ich eingebunden habe, ist das Ergebnis ab der sechsten Nachkommastelle falsch!
Ich denke, da denkt der Compiler, das wäre float, obwohl es double ist.
Kann mir einer helfen?
vielen dank,
bjoern