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

कॉलिंग सम्मेलन के साथ फ़ंक्शन पॉइंटर घोषित कैसे करें? उपर्युक्त मुझे एक त्रुटि देता है।फ़ंक्शन पॉइंटर और कॉलिंग कन्वेंशन

+1

त्रुटि संदेश क्या है? – James

उत्तर

29

चाल इस तरह कोष्ठकों के अंदर __stdcall दे रहा है:

float (__stdcall *pFunc)(float a, float b) = (float (__stdcall *)(float,float))0x411280; 
बेशक

, आप के बजाय एक typedef उपयोग करने के लिए सिफारिश कर रहे हैं, लेकिन एक ही चाल लागू होता है:

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

अगर मैं दो बार ऊपर उठ सकता हूं तो मैं चाहता हूं। आपका बहुत बहुत धन्यवाद! –

+2

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन हम नहीं चाहते कि हम 'typedef' **' float' ** '(__stdcall * FuncType) (फ्लोट ए, फ्लोट बी)'? – zeboidlund

-1

__fastcall है अनुकूलित एक (सबसे तेज़ कॉलिंग सम्मेलन) लेकिन अज्ञात कारण

प्रयास करें:

int (__fastcall *myfunction)(int,float); 
संबंधित मुद्दे