çaðrý standardýný
Microsoft özel
__stdcall Çağırma Win32 API işlevleri çağırmak için kullanılır. Derleyici yapar böylece Aranan yığınını temizler vararg işlevleri __cdecl. Bu çağrı kuralı kullanmak işlevler işlev prototipi gerektirir.
return-type __stdcall function-name[(argument-list)]
Notlar
Aşağıdaki liste, bu çağrı kuralı uygulaması gösterir.
Öge |
Uygulama |
---|---|
Bağımsız değişken geçirme sırası |
Sağdan sola. |
Bağımsız değişken geçirme yöntemi |
Değer, bir işaretçi veya başvuru türü geçirilen sürece. |
Yığın bakım sorumluluğu |
İşlev POP yığından kendi bağımsız olarak adlandırılır. |
Ad düzenleme kuralı |
Bir alt çizgi (_) adı öneki. Adı tarafından izlenen bayt sayısını (ondalık) bağımsız değişken listesinde arkasından (@) işareti. Bu nedenle, olarak bildirilen int func( int a, double b ) gibi donatılmış:_func@12 |
Büyük/küçük harf çevirme kuralı |
None |
/Gz derleyici seçeneği belirtir __stdcall farklı bir Arama kuralı açıkça bildirilen tüm işlevleri için.
İşlevleri kullanılarak bildirilen __stdcall değiştirici dönüş değerleri kullanılarak bildirilen işlevler aynı şekilde __cdecl.
Itanium işlemci ailesi (IPF) üzerinde ve x 64 işlemciler, __stdcall kabul edilir ve derleyici tarafından; göz ardı IPF üzerinde kural gereği kayıttaki Parametreler iletilir.
Tanımlı çıkış satır sonu, işlevi ise, statik olmayan sınıf işlevleri için Arama kuralı değiştirici satır sonu tanımında belirtilecek yok. Diğer bir deyişle, sınıf statik olmayan üye yöntemleri için tanımı noktasında bildirimi sırasında belirtilen çağrı kuralı kabul edilir. Bu sınıf tanımı verilen,
struct CMyClass {
void __stdcall mymethod();
};
Bu
void CMyClass::mymethod() { return; }
şuna eşdeğerdir
void __stdcall CMyClass::mymethod() { return; }
Örnek
Aşağıdaki örnekte __ kullanmakstdcall tüm sonuçlar WINAPI işlevi, standart bir çağrı işlenen türleri:
// Example of the __stdcall keyword
#define WINAPI __stdcall
// Example of the __stdcall keyword on function pointer
typedef BOOL (__stdcall *funcname_ptr)(void * arg1, const char * arg2, DWORD flags, ...);