現在、データが必要なコマンドのリストをサーバーに送信するクライアントがあります。私のサーバーは、getProcAddress を使用して DLL 経由でこれらのコマンドをロードします。次に例を示します。
InitializeDLL initializeDLL = (InitializeDLL)GetProcAddress(hInstanceLibrary, "InitializeDLL");
ここで、initializeDLL は次のように定義されています。
typedef int (CALLBACK* InitializeDLL)(int,int);
クライアントは現在、データが必要な文字列としてコマンド名を送信しています。使用できるようにしたいコマンドのリストがかなりありますが、これを効率的に実装する方法がわかりません。Map を作成し、名前の文字列をキーとして使用し、適切な関数の CALLBACK* をポインターとして使用することを考えていました。しかし、その後もキャストする必要があります。私は主に Java プログラマーであり、最高の C++ プログラマーではないため、このマップのアイデアが機能するかどうか、または最後にキャストを処理する方法がわかりません。また、ウィキペディアで Command パターンを見ましたが、この場合にどのように実装されるかわかりません。