Во-первых, вы можете поместить необработанные данные в std::string
без риска возникновения каких-либо проблем.Это может смутить читателя, который ожидает, что std::string
будет содержать текст, но в определенных случаях (и вставка необработанных данных в HTTP-ответ может быть допустимым примером), это оправдано.
Во-вторых, яЯ не уверен, что вы подразумеваете под "усекать мои двоичные файлы".Если файл записывается и читается в двоичном режиме, проблем не должно быть;там, конечно, нет в системах, с которыми я знаком (Unix и Windows).
Наконец, хотя я не уверен, как определяется BYTE
(возможно - или, по крайней мере, надеюсь), это unsigned char
).В этом случае простейшим решением, вероятно, будет использование std::vector<BYTE>
для создания буфера.Чтобы добавить к ней строку:
buffer.append( str.begin(), str.end() );
(неявное преобразование char
в unsigned char
помогает при этом.)