Avatar billede neoo Nybegynder
10. januar 2004 - 17:21 Der er 2 kommentarer og
1 løsning

Calling conventions ?

hej eksperter.

jeg har læst noget om Calling conventions, men forstår ikke lige alt.
er der nogen der ved hvad :

Safecall betyder  ?
StdCall  betyder  ?
Avatar billede arne_v Ekspert
10. januar 2004 - 23:21 #1
Det er beskrevet i online help.

Jeg klipper lidt derfra:

When you declare a procedure or function, you can specify a calling convention using one of the directives register, pascal, cdecl, stdcall, and safecall.

Calling conventions determine the order in which parameters are passed to the routine. They also affect the removal of parameters from the stack, the use of registers for passing parameters, and error and exception handling.

On Windows, the operating system APIs are stdcall and safecall.

The safecall convention implements exception “firewalls.”

stdcall    Right-to-left    Routine    No
safecall    Right-to-left    Routine    No

(læs selv det hele)
Avatar billede hrc Mester
11. januar 2004 - 14:52 #2
Du må tænke på parametre som en samling data der push'es til stakken (håber her du forstår stakke) inden proceduren kaldes. Det er måden hvorpå man at håndterer stakken, som bestemmer med eks. stdcall. Rækkefølgen for en stdcall er at læse fra højre mod venstre, dvs:

  ExternFunc(Param1, Param2, Param3);

vil læse parametrene i rækkefølgen Param3, Param2, Param1. Standarden for Pascal (Borland, Delphi osv) er venstre mod højre, så noget går galt hvis man glemmer disse "specifiers".

En god regel er, at laver man DLL'er, så kaldes disse med C-standarden (hvilket er højre mod venstre).
Avatar billede arne_v Ekspert
23. januar 2004 - 22:15 #3
Lukke tid ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester