Zitat von
jbg:
pascal ist aber veraltet. Es wurde unter Win16 benutzt, aber dann durch stdcall bei der Win32API ersetzt (sind aber kompatibel, trotzdem sollte man sie nicht mischen).
Das ist leider nicht korrekt. Die beiden sind nicht kompatibel. Schau mal unter
Calling conventions nach.
Code:
Directive Param order Clean-up Passes parameters in registers?
--------- ----------- -------- -------------------------------
register Left-to-right Routine Yes
[color=red]pascal [b]Left-to-right[/b] Routine No[/color]
cdecl Right-to-left Caller No
[color=red]stdcall [b]Right-to-left[/b] Routine No[/color]
safecall Right-to-left Routine No
Ich glaube du verwechselst hier jenes PASCAL (ein Präprozessor-Define in C), welches identisch ist mit dem jetzigen
WINAPI (#define
WINAPI __stdcall). Hat allerdings nichts mit den gleichnamigen Aufrufkonventionen in Delphi gemein. PASCAL wurde tatsächlich unter Windows 16bit benutzt.
Die Hauptsache ist eben, sie nicht zu mischen, wie ich oben ja schon schrieb. Macht der Fragesteller aber nicht, daher sollte irrelevant sein, welche er benutzt. Zumal dies bei einer
DLL die mglw. nie in einem anderen Programm wiederverwendet wird (immerhin wird ein Objektzeiger übergeben!) sowieso irrelevant ist (man muß also nicht krampfhaft stdcall benutzen).