我使用的是 XenDesktop 5.6(服务器)和 Citrix Receiver 3.6(客户端)。我使用虚拟 channel SDK 在服务器和客户端之间创建 channel 并来回传递 C 样式结构,使用找到的示例 here .只需设置适当的结构字段(例如 g_pMixHd->dwRetVal = 1
),我就可以轻松地在客户端和服务器之间传递简单的数字类型(USHORT 等),但我不能对字符串类型做同样的事情( LPBYTES、PSZ、PUCHAR)。我已尝试在客户端和/或服务器上分配内存、更新结构的长度字段和其他方法,但似乎没有任何效果。
我想要做的就是让我的客户端在接收结构中分配一个简单的 ANSI/ASCII 字符串,并将其传回服务器。有没有人这样做过?你能帮忙吗?
最佳答案
在没有看到更多细节的情况下,我猜测这可能是因为您使用的是基于指针的字符串。
假设您有一个包含字符串成员的 C 结构。该成员不应是字符串,而应是字节数组,您应该在发送数据包之前将字符串复制到字节数组中。
关于Citrix Virtual Channel SDK - 如何将字符串值从 ICA 客户端返回到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17652248/