Причина проблемы и способ решения описаны здесь
контейнер: += трагедия вставки пустой строки.
Хотя там была проблема с пустым значением, но исправляет и ошибку "кривых" результатов.
Если приведенный там код "причесать", то он разбивается на 2 фрагмента: часть - это модификация init(), другая часть - модификация encode(). Модифицировать barCodeStr() - не нужно.
Собственно, вопрос правильного определения DLL библиотек и их параметров.