同時クライアント接続を受信するサーバーがあります。マルチスレッドを使用するサーバーを実装するためのモデルとして、NI が提供する MultiClientServer サンプルを主に使用しました。最大 4 つのクライアントが接続しており、各クライアントは内部変数に関する情報を送信しています。私の目標は、このデータを送信したクライアントに応じて別のタブに表示することです。各タブ要素のハンドルを保持する配列があります。
static int ClientTABHandle[4] = {0,0,0,0};
クライアントが接続して ID を報告すると、ID は SetCtrlVal を呼び出すときに適切な ClientTABHandle を参照するために使用されます。例えば、
SetCtrlVal(boardTABHandle[clientInfoPtr->clientID],<control name>, <value>);
<> 内の値はシンボリックです。
現在、これにより、処理しているクライアントに応じて実行時に適切な TAB ハンドルを使用できますが、動的に参照する方法が見つかりません。UI コントロールは別々のタブにあるため、各コントロールにはそのタブ名のプレフィックスがあります。たとえば、TAB が TABPANEL1、TABPANEL2、TABPANEL3、および TABPANEL 4 と呼ばれる場合、最初の TAB の UI 要素は TABPANEL1_CONTROLNAME として参照されます。しかし、実行時にコントロールを参照する文字列を作成し、それを SetCtrlVal コマンドで使用するにはどうすればよいでしょうか? 私は Fmt を使用するのが好きではありません.Fmt を使用すると速度が低下するだけでなく、コントロール名に評価される文字列を使用する方法がわかりません。