2011-01-28 27 views
12
float __stdcall (*pFunc)(float a, float b) = (float (__stdcall *)(float,float))0x411280; 

Bir işlev işaretçisini arama kuralı ile nasıl bildirilir? Yukarıdaki bana bir hata veriyor.İşlev işaretçisi ve çağrı kuralı

+1

Hata iletisi nedir? – James

cevap

29

hüner böyle parantez içinde __stdcall çiziyor: Elbette

float (__stdcall *pFunc)(float a, float b) = (float (__stdcall *)(float,float))0x411280; 

, bunun yerine bir typedef kullanılması önerilir, ancak aynı hile geçerlidir:

typedef float (__stdcall *FuncType)(float a, float b); 
+0

Eğer iki kat daha fazla katılabilirdim. Çok teşekkürler! –

+2

Yanılıyorsam düzeltin, ama biz "typedef" ** "float" ** (__stdcall * FuncType) istemiyoruz (float a, float b) '? – zeboidlund

-1

__fastcall olduğunu optimize edilmiş bir (en hızlı çağrı kuralı) ancak bilinmeyen bir nedenle kullanılmamıştır (

Try:

int (__fastcall *myfunction)(int,float); 
İlgili konular