|
v7: 1CPP ActiveX WinSock GetData(Text) - возвращает пустое значение.
| ☑ |
0
Agent ООЗ
28.09.12
✎
13:30
|
Сабж, кто-нибудь победил? В гугле тишина.
|
|
1
Ёпрст
28.09.12
✎
13:37
|
|
|
2
Ёпрст
28.09.12
✎
13:38
|
короче, RiK_Inet пользуй..
|
|
3
Agent ООЗ
28.09.12
✎
13:39
|
сам читаешь, то что отправляешь?
|
|
4
Ёпрст
28.09.12
✎
13:39
|
(3) нет, в закладках валялось
|
|
5
oleg_km
28.09.12
✎
14:09
|
А не понял, что нужно победить? Если речь идет о майкросовтовском ActiveX. То у меня он уже используется лет 10. Сейчас на нем крутится серверный процесс, который обслуживает до 100 пользователей. Подключаю терминалы спутниковой навигации. Поэетому приведи код, попробуем разобраться что не работает
|
|
6
Agent ООЗ
28.09.12
✎
14:21
|
Процедура Winsock_DataArrival(bytesTotal)
Команда = "";
Десктоп.Объект.GetData(Команда);
КонецПроцедуры
Переменная Команда всегда пустая, не могу получить сообщение с другого конца.
|
|
7
oleg_km
28.09.12
✎
14:27
|
(6) А-а. Нужно выделить память в буфере:
Процедура Winsock_DataArrival(bytesTotal)
Команда = "";
для ии = 1 По bytesTotal Цикл
Команда = Команда + " ";
КонецЦикл
Десктоп.Объект.GetData(Команда);
КонецПроцедуры
должно получиться. У меня работает
|
|
8
Agent ООЗ
28.09.12
✎
14:34
|
получается строка с пробелами, а данных нет.
|
|
9
oleg_km
28.09.12
✎
15:17
|
(8) Так я посмотрел у себя, полный текст такой:
Процедура СокетDataArrival(Элемент, bytesTotal)
Ошибка = Ложь;
Буфер = СтрСоздать(bytesTotal);
// Буфер = Новый COMSafeArray("VT_UI1", bytesTotal);
Попытка
Элемент.GetData(Буфер, 8, bytesTotal);
// Элемент.GetData(Буфер, 8192 + 17, bytesTotal);
Исключение
Ошибка = Истина;
КонецПопытки;
КонецПроцедуры
Может параметров не хватает в функции GetData. Второй параметр тип буфера, третий размер
|
|
10
Agent ООЗ
28.09.12
✎
16:29
|
В 8 возвращает без всяких наворотов, в отличии от 7.
|
|
11
oleg_km
28.09.12
✎
17:23
|
(10) Тогда ой. У меня были сомнения про 7, но думал не существенно. С 7кой дел не имел и не планирую
|
|