===[ Программизм / ненависть ]=== #post-id: 6024-02-32 #original-date: 22.01.2017 Sun #original-time: 2:32 AM #original-day: 6024 #original-host: WinXP Home SP3 (Build 2600) И снова. Некая либа с неким функционалом. Сначала одной функцией внутрь загоняется буфер с данными. Потом данные преобразуются, и второй функцией данные получаем назад. Функция принимает параметр, указывающий размер передаваемого буфера. А какой размер буфера? Стандартный метод с передачей буфера нулевой длины и получения требуемого размера не работает. Смотрим документацию и находим пример использования этих функций. Пример оформлен в виде функции, в которую размер выходного буфера передаётся через параметр. При этом нигде не написано, что размер данных останется прежним. Тоесть самими разработчиками либы предлагается УГАДАТЬ требуемый размер буфера. И ведь это не единичный случай =_= #upd: Речь шла о библиотеке cryptlib и функциях cryptPushData() / cryptPopData(). Правда, я была не совсем права, и эти функции позволяют загонять и получать данные кусками. В частности cryptPopData() возвращает параметр, который показывает, сколько байт скопировано. Нужно в цикле вызывать её пока этот параметр не станет нулевым. Но это же не написано в описании функции! Это нужно было в трёхсотстраничном мануале найти и прочитать раздел «Обработка больших объёмов данных».