私はVisual C#で完全に動作するC++コードを含むDLLを持っています。私がC++ DLLにfuctonを作成すると、それはVisual C#で表示され、パラメータを指定しても呼び出されます。しかし、C++ DLLのパラメータの1つとして関数ポインタを追加すると、Visual C#ではそれを見つけることができません。C++の関数としてのパラメータ
C++関数:
int TEST(int *func) // Works fine and shows up in visual C#.
{
return 0;
}
int TEST2(int (*func)()) // Works, however doesn't show up in Visual C#
{
return 0;
}
UPDATE:私はC#のからTEST2を呼び出すと
、私はエラーを取得する:'TEST2' is not supported by the language
「Visual C#で見つけることができません」という意味はどうですか? – templatetypedef
上記は有効な関数宣言ですが、int(* func)()、つまりintを返す関数へのポインタを意味すると思われます。書かれているように、引数の型は 'int *'を返す関数です(この文脈では 'int *'を返す関数へのポインタを意味します)。 – celtschk