hallo,
ich schreibe mit einem Freund zusammen ein Programm. Er schreibt eine
DLL-Datei und ich schreibe das Hauptprogramm. Die DLL liefert einen
floating-Wert zurück. In meinem Programm kommt allerdings kein
floating-Wert an, sondern ein INT oder LONG - also Ganzzahl.
Bei Aufruf der Funktion in der DLL wird der double Wert auf dem
Bildschirm ausgegeben. Da ist es noch eine Gleitkommazahl.
Die Initialisierung der DLL sieht so aus:
1 | _Division_Berechnen (unsigned long *Zaehler, unsigned long *Nenner, double *result_div, int Stelle)
|
2 | {
|
3 | typedef double (CALLBACK *LPWSTR)(unsigned long *, unsigned long *, double *, int);
|
4 | LPWSTR p;
|
5 | p = (LPWSTR)GetProcAddress(hDLL,"_DLL_Division");
|
6 | if (!p)
|
7 | {
|
8 | printf ("\nFormel in DLL nicht gefunden!\n\n");
|
9 | exit(-1);
|
10 | }
|
11 | else
|
12 | {
|
13 | return (p)(Zaehler, Nenner, result_div, Stelle);
|
14 | }
|
15 | }
|
Was könnte ich falsch machen, dass der floating-Wert als Ganzzahl-Wert
übergeben wird?