2009-06-02 1 views
0

どのように私はこの関数ポインタへ/からパラメータ値を渡したり得るか:のtypedefボイド(* PTR)(ArgumentListは)問題

typedef void(* CreateCursorBitmapProc)(uchar *bitmapBuffer, uint32 *width, uint32 *height, bool16 *hasAlpha) 

bitmapBuffer、幅、高さ、hasAlphaはアウトパラメータです。

答えて

2
// Grab an instance from somewhere... 
CreateCursorBitmapProc instance = ...; 

// Declare output variables 
// should be initialized to some buffer, probably 
uchar *bitmapBuffer = new uchar[size_of_buffer]; 
uint32 width, height; 
bool16 hasAlpha; 
(*instance)(bitmapBuffer, &width, &height, &hasAlpha); 
+0

なぜinstance()でないのですか?なぜポインタを逆参照するのですか? – sharptooth

+0

@sharptooth:それらは等しいです。私は、私がこの構文に固執した奇妙なコンパイラで逆参照なしで悪い経験をしたと思います。なぜ私は本当にわからない。とにかく、それはスタイルの問題です。 –

関連する問題