У меня есть векторный объект, который содержит данные буфера обмена. Я пытаюсь записать содержимое данных буфера обмена в файл temp с использованием буферизованного потока. Я использую итераторы для доступа к содержимому вектора.Невозможно преобразовать векторный итератор uint8_t в const uint8_t *
Я столкнулся с проблемой при попытке конвертировать данные в буфер обмена, который является std::vector ClipboardDataVector
, inbuffer
который типа const std::uint8_t* inBuffer
.
Вот код, который я использую
typedef std::vector ClipboardDataVector;
File::WriteBlock(const std::uint8_t* inBuffer, std::uint32_t inBufferSize);
BOOL WriteToTempFile(ClipboardDataVector& clipBoardData) {
std::vector::iterator clipBoardIterator;
clipBoardIterator = clipBoardData.begin();
File::WriteBlock((const uint8_t *)clipBoardIterator, clipBoardData.size());
}
Когда я компилирую этот код я получаю следующее сообщение об ошибке.
ошибка C2440: 'приведение типа': не может конвертировать из 'станд :: _ Vector_iterator < _Myvec>' на 'сопзЬ uint8_t *'
Я новичок в векторах, и я нахожу это трудно узнайте об этой ошибке - как я могу ее решить?
+1 это ansswer; Я бы использовал const ClipboardDataVector, хотя, как нет большого шанса, что данные будут меняться при записи в файл. – stijn
@stijn - согласился, я почему-то забыл об этом здесь, но добавил его в свой ответ. – Flexo
Большое вам спасибо. Это отлично работало :) –