我有一個包含剪貼板數據的向量對象。我正嘗試使用緩衝流將剪貼板數據的內容寫入臨時文件。我使用迭代器來訪問矢量的內容。無法將uint8_t向量迭代器轉換爲常量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: '類型轉換':不能從轉換 '的std :: _ Vector_iterator < _Myvec>' 到 '常量uint8_t *'
我新的載體,我很難發現它讓我的頭繞過這個錯誤 - 我該如何解決它?
+1這是ansswer;我會使用const ClipboardDataVector&雖然沒有太多的機會將數據寫入文件時將會改變。 – stijn
@stijn - 同意,我有點忽略了在這裏出於某種原因,但已添加到我的答案。 – Flexo
非常感謝。這工作非常好:) –