我有這段代碼使用lodepng庫來加載PNG文件。圖書館是好的,成功地用於其他項目,沒有問題。C++代碼不能編譯 - 匹配參數列表
const std::string tmpString = mapFileName.GetConstString();
std::vector<unsigned char> xx;
unsigned int error = lodepng::decode(xx, (unsigned int)this->mapWidth, (unsigned int)this->mapHeight, tmpString, LCT_GREY, (unsigned int)8);
我想要編譯這一點,但越來越怪異的錯誤消息。
MapHelper.cpp(72): error C2665: 'lodepng::decode' : none of the 5 overloads could convert all the argument types
c:\ImageUtils\lodepng.h(200): could be 'unsigned int lodepng::decode(std::vector<_Ty> &,unsigned int &,unsigned int &,const unsigned char *,size_t,LodePNGColorType,unsigned int)'
with
[
_Ty=uint8
]
c:\ImageUtils\lodepng.h(203): or 'unsigned int lodepng::decode(std::vector<_Ty> &,unsigned int &,unsigned int &,const std::vector<_Ty> &,LodePNGColorType,unsigned int)'
with
[
_Ty=uint8
]
c:\ImageUtils\lodepng.h(211): or 'unsigned int lodepng::decode(std::vector<_Ty> &,unsigned int &,unsigned int &,const std::string &,LodePNGColorType,unsigned int)'
with
[
_Ty=uint8
]
c:\ImageUtils\lodepng.h(759): or 'unsigned int lodepng::decode(std::vector<_Ty> &,unsigned int &,unsigned int &,lodepng::State &,const unsigned char *,size_t)'
with
[
_Ty=uint8
]
while trying to match the argument list '(std::vector<_Ty>, unsigned int, unsigned int, const std::string, LodePNGColorType, unsigned int)'
with
[
_Ty=uint8
]
我看不出什麼問題,輸入參數類型與庫中相同,並且類型中可能不存在衝突。
編輯 功能,在那裏我有lodepng::decode
不是const的
完成了你確定所有的'無符號int'鑄件是必要的? – chris
@chris他們沒用,但沒有他們,行爲是一樣的。我寫他們只是爲了匹配函數參數與lodepng –
完全一致。我在不同的項目中使用相同的代碼,並且所有內容都編譯得很好。我知道,該編譯器不能匹配函數,但我不明白爲什麼。我使用的類型與列表中的第三個解碼函數相同。 –