|
![]() |
#1 |
Участник
|
В продолжение старой темы.
Имеется С-библиотека, которая в 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; } Какие у кого идеи? |
|
![]() |
#3 |
Участник
|
В данном случае размера буфера более чем достаточно.
Вижу пока вариант написать свой метод вместо string() на основе тестового цикла. То есть, самому считывать строку посимвольно. |
|
Теги |
ax3.0, binary, string |
|
|