Тема: Binary.string
Показать сообщение отдельно
Старый 27.10.2017, 15:10   #5  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
В продолжение старой темы.
Имеется С-библиотека, которая в out параметр возвращает структуру с указателем на стоку (PSTR) неизвестной длины.
В Ах я ее получаю в Binary _info и пытаюсь вытащить строку.

X++:
p1 = new Binary(1000);
p1.attach(_info.dWord(offset), 300);
sss = p1.string(0);
Вроде все просто.
В выделенный буфер метод attach копирует заданное количество байт, а потом метод string копирует из них строку до первого нуля.

Но иногда при работе клиент падает на методе string.
Скорей всего из-за обращения к не той памяти.

X++:
// проверка текстовых данных
for (n=0; n<=300; n+=1)
{
    info(strfmt('%1 = %2 %3', n, int2hex(p1.byte(n), 2), num2char(p1.byte(n))  ));
    if (p1.byte(n) == 0x00)
        break;
}
Проверка проходит нормально.
Какие у кого идеи?