パラメータとして渡される関数ポインタにパラメータを渡そうとしています。関数ポインタへのパラメータの受け渡し
コード:
void Test(wchar_t* a, wchar_t* b)
{
// ...
}
void Test2(void(*Func)(wchar_t*, wchar_t*))
{
// ...
}
int main()
{
Test2(Test(L"Hello", L"Testing"));
return 0;
}
私はこのエラーを取得しています:
は私が達成しようとしているものを達成するために、これをどのように修正すればよいですか?
編集:申し訳ありませんが明確ではありません。私が実際に達成しようとしているのは、子プロセスに関数を注入し、2つのパラメータ(wchar_t *、wchar_t *)を渡して使用できるようにすることです。しかし、main関数はvoidまたはint argc、char ** argvのいずれかになります。だから私は、私は単にあなたはおそらく代わりに
void Test2(void(*Func)(wchar_t*, wchar_t*),wchar_t* x, wchar_t* y)
{
(*Func)(x,y);
}
int main()
{
Test2(Test,L"Hello", L"Testing");
return 0;
}
のようなものを持ちたいグローバル変数
あなたがしたいことに応じてラムダで十分でしょう。 – chris
あなたが達成しようとしていることはまさに*ですか?あなたのコードは、あなたが気付いたように、有効なCではないので、あなたの意図の有用なデモンストレーションではありません。 –
πάνταῥεῖの答えは私が達成しようとしているものですが、テンプレートを使ってC++のようなやり方をしたいのです – user1304765