В продолжение старой темы.
Имеется С-библиотека, которая в 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;
}
Проверка проходит нормально.
Какие у кого идеи?