Seite 1 von 1

CallFunction() vs. Prototypes

Verfasst: 06.05.2006 19:06
von Toshy
Hallo.

Ich verstehe leider noch nicht ganz, wie man z.B. Quads beim Aufruf einer DLL-Funkton nutzen kann. CallFunction() nutzt man hier ja normal. Es gibt aber den Hinweis
Hinweis: diese Funktion ist nicht sehr flexibel und kann nicht mit Double/Quad-Variablen als Parameter oder Fliekomma/Double/Quad - Rckgabewerten umgehen. Die Prototypen sind jetzt stattdessen bevorzugt zu empfehlen.
Ich habe zwar noch nicht kapiert, wie das mit den Prototypes geht, schaue mir das gerade zum ersten mal an, aber was mich gleich verwirrt ist der Hinweis bei "Prototypes":
Nicht wie bei CallFunction() knnen Prototypes ohne Probleme mit Doubles, Fliekomma und Quad Variablen umgehen. Um einfach den Zeiger einer Library-Funktion zu erhalten, verwenden Sie GetFunction().
Das ist sehr eigenartig bzw. doppeldeutig ausgedrück. Die ersten Male habe ich verstanden, es bedeutet das man mit Prototyps KEINE Quads nutzen kann. Beim näheren hinsehen ist mir aufgefallen, das diese Aussage beides bedeuten kann. "Nicht wie bei Callfunktion()..." kann doch interpretiert werden, als "CallFunktion() kann es, Prototyps nicht" wie auch als umgekehrt.
Falls wie ich vermute die Prototyps das können (wie auch immer die zu nutzen sind), sollte man das anders beschreiben.
Vielleicht sollte man schreiben

"Im Gegensatz zu 'CallFunction()', welche nicht mit Quads,Doubles... umgehen kann, ist dies mit Prototyps problemlos möglich....

Ach ja, und ich den dies so richtig?
Syntax
Prototype.<Typ>(<Parameter>, [, <Parameter> [= StandardWert]...])
Es nicht eher in der Art heißen:
Syntax
Prototype.<Typ> PrototypName(<Parameter>, [, <Parameter> [= StandardWert]...])
[edit]
oder
Syntax
Prototype PrototypName(<Parameter>, [, <Parameter> [= StandardWert]...])
Irgendwie muß man ja den "Namen" angeben, so wie im Beispiel, aber in der Syntaxbeschreibung ist davon nichts zu finden.

Was ich auch nicht verstehe ist die Angabe des Typ. Wozu kann man den angeben? Wenn die Variable immer ein Zeiger/Pointer ist, so ist doch fest vorgeschrieben was das für ein Typ sein muß. Also immer ein LONG bzw. unter einen 64bit-System wohl ein Quad. Kann mir das mal bitte jemand zum Verständnis erklären.

Gruß
Toshy

Verfasst: 08.05.2006 01:50
von Toshy
Danke für eure Antworten.
Für ander User, die Antworten stehen unter:
http://www.purebasic.fr/german/viewtopi ... 0517#90517

Toshy