dll schreiben: _stdcall oder _cdecl?
-
Hallo,
ich bin gerade dabei eine dll zu schreiben. Diese dient dazu, auf eine von mir gebaute Hardware zuzugreifen und soll mit dieser zusammen ausgeliefert werden.
Nun habe ich ja grundsätzlich die Möglichkeit Funktionen die dll als _stdcall oder als _cdecl zu exportieren. Die Unterschiede (Reihenfolge der Parameter) sind mir bekannt.
Was aber sind die Vor- und Nachteile des einen oder anderen Verfahrens?
Falls es damit etwas zu tun hat: Ich weiß nicht, und kann es auch nicht beeinflussen, welchen Compiler meine Kunden zur Erstellung Ihrer Anwendungen verwenden.
Gruß,
Sebastian
-
Ich glaub wenn du die DLL mit anderen Sprachen nutzen möchtest musst du __stcall verwenden.
-
__stdcall is der standard für windowsfunktionen
falls die dll von visual basic aus benutzt werden soll wär __stdcall angebracht
für die beste kompatibilität zu den meisten sprachen solltest du einen c header schreiben und die funktionen als reine c funktionen exportiern
#ifdef __cplusplus extern "C" { #endif void funktion ( int, long ); #ifdef __cplusplus } #endif
-
Hallo zusammen.
Also, ich gehe davon aus, dass die dll mindestens von VB, Delphi und C/C++ aus importierbar sein sollte. Habe jetzt alle Funktionen als __stdcall exportiert. Da ich eh nur einen C (ohne ++) Compiler verwende müsste das gehen, oder?
Danke den Antwortern.
Sebastian
-
ja, das geht. die windoofs-eigenen dlls benutzen auch __stdcall. damit liegst du nie verkehrt.
-
Danke

Sebastian