Citrix Virtual Channel SDK - Как вернуть строковое значение с клиента ICA на сервер?

Я использую XenDesktop 5.6 (сервер) и Citrix Receiver 3.6 (клиент). Я использовал Virtual Channel SDK для создания канала между сервером и клиентом и передачи структур в стиле C взад и вперед, используя примеры, найденные здесь. Я могу легко передавать простые числовые типы (USHORT и т. Д.) Между клиентом и сервером, просто установив соответствующее поле структуры (например, g_pMixHd->dwRetVal = 1) но я не могу сделать то же самое с строковыми типами (LPBYTES, PSZ, PUCHAR). Я попытался выделить память на клиенте и / или сервере, обновить поле длины структуры и другие подходы, но, похоже, ничего не работает.

Все, что я хочу сделать, - это чтобы мой клиент назначил простую строку ANSI/ASCII в принимающей структуре и передал ее обратно на сервер. Кто-нибудь сделал это? Вы можете помочь?

1 ответ

Не видя больше деталей, я догадываюсь, что это, вероятно, потому что вы используете строки на основе указателей.

Допустим, у вас есть структура C, которая имеет строковый член. Этот член не должен быть строкой, скорее это должен быть байтовый массив, и вы должны скопировать строку в байтовый массив перед отправкой пакета.

Другие вопросы по тегам