클립 보드 데이터가 포함 된 벡터 객체가 있습니다. 버퍼 된 스트림을 사용하여 임시 파일에 클립 보드 데이터의 내용을 쓰려고합니다. 나는 이터레이터를 사용하여 벡터의 내용에 접근하고있다.uint8_t 벡터 반복기를 const uint8_t *로 변환 할 수 없습니다.
std::vector ClipboardDataVector
의 데이터를 인 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>' 'const를 uint8_t *'
내가 벡터에 새로운 오전과 내가 하드를 찾는 오전 이 오류 주위에 내 머리를 얻을 - 어떻게 해결할 수 있습니까?
일이이 ansswer입니다 -
는 (당신은 항상const
으로 변경하지 않습니다 일을 표시, 그것은에서 할 수있는 좋은 습관 또한clipBoardData
에 대한 참조도const
일했다) const ClipboardDataVector &를 사용 하겠지만 데이터를 파일에 쓸 때 데이터가 변경되지는 않을 것입니다. – stijn@stijn - 동의 했으니 까, 나는 일종의 이유로 여기 간과 해 버렸지 만 그것을 내 대답에 추가했습니다. – Flexo
정말 고마워요. 그건 완벽하게 잘 작동 :) –