我有一个接收同时客户端连接的服务器。我主要使用 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 名称的前缀。例如,如果 TAB 称为 TABPANEL1、TABPANEL2、TABPANEL3 和 TABPANEL 4,则第一个 TAB 上的 UI 元素将称为 TABPANEL1_CONTROLNAME。但是如何在运行时创建一个引用控件的字符串并在 SetCtrlVal 命令中使用它?我不喜欢使用 Fmt,因为它会减慢速度,而且,我不知道如何使用会评估为控件名称的字符串。