私はたくさんの引数を取る関数drawImage
を持っていて、そのうちのいくつかはHWND
、HDC
のようなWinApiタイプのものです。クラスのヘッダーにすべてインポートする必要はありません。しかし私はクラスのメソッドから呼び出す必要があります。未知の引数を持つ関数を宣言して呼び出す方法は?
extern void drawImage();
class A {
private :
int n;
// ...
public :
// ...
void draw() {
drawImage(n);
}
};
上記のコードでは、予想されるエラー:drawImage does not take one argument
が返されます。だから私はこれをどのように達成できますか?
さらに、WinApiのものを含むソースファイルにメンバー関数を定義したくありません。
UPDATE:
extern void drawImage();
extern int a;
extern unsigned long int b;
...
extern "C" void c;
class A{
private :
int n;
...
public :
...
void draw(a,b,c){
drawImage(a,b,c,n);
}
}
これは素晴らしい解決策を作ることができますが、Visual Studioはextern void
宣言を許可していません。
引数が1つではない関数を呼び出す場合は、なぜあなたはそれが働くことを期待していますか? *どのように働くことが期待されますか? –
これは私の質問です。シンボリックなargsのようなコードに柔軟性を持たせるためのいくつかの魔法のC++の事: 'draw(a、b、c、d)' –
原則として、この場合、 "magic"失望した。 –