隨書(shū)代碼在VC6.0中可以正常編譯運(yùn)行,但是在VS2012環(huán)境下會(huì)報(bào)錯(cuò),無(wú)法運(yùn)行
報(bào)錯(cuò)如下:
1>? ? ? ? ? c:\users\westring\desktop\dipdemo_vc6\imgprocess.cpp(1719): error C2668: “fabs”: 對(duì)重載函數(shù)的調(diào)用不明確
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(564): 可能是“l(fā)ong double fabs(long double)”
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(516): 或? ? ? “float fabs(float)”
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(118): 或? ? ? “double fabs(double)”
1>? ? ? ? ? 嘗試匹配參數(shù)列表“(int)”時(shí)
1>c:\users\westring\desktop\dipdemo_vc6\imgprocess.cpp(1805): error C2668: “fabs”: 對(duì)重載函數(shù)的調(diào)用不明確
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(564): 可能是“l(fā)ong double fabs(long double)”
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(516): 或? ? ? “float fabs(float)”
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(118): 或? ? ? “double fabs(double)”
1>? ? ? ? ? 嘗試匹配參數(shù)列表“(int)”時(shí)
1>c:\users\westring\desktop\dipdemo_vc6\imgprocess.cpp(1815): error C2668: “fabs”: 對(duì)重載函數(shù)的調(diào)用不明確
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(564): 可能是“l(fā)ong double fabs(long double)”
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(516): 或? ? ? “float fabs(float)”
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\math.h(118): 或? ? ? “double fabs(double)”
1>? ? ? ? ? 嘗試匹配參數(shù)列表“(int)”時(shí)?
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1768): error C2039: “difference_type”: 不是“CImgProcess”的成員
1>? ? ? ? ? c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1768): error C2146: 語(yǔ)法錯(cuò)誤: 缺少“,”(在標(biāo)識(shí)符“difference_type”的前面)
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1768): error C2065: “difference_type”: 未聲明的標(biāo)識(shí)符
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1772): error C2955: “std::_Iterator012”: 使用類(lèi) 模板 需要 模板 參數(shù)列表
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility(344) : 參見(jiàn)“std::_Iterator012”的聲明
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1774): error C2039: “size_type”: 不是“CImgProcess”的成員 1> c:\users\westring\desktop\dipdemo_vc6\imgprocess.h(125) : 參見(jiàn)“CImgProcess”的聲明
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1774): error C2146: 語(yǔ)法錯(cuò)誤: 缺少“;”(在標(biāo)識(shí)符“_Sizet”的前面)
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1774): error C4430: 缺少類(lèi)型說(shuō)明符 - 假定為 int沥割。注意: C++ 不支持默認(rèn) int
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1782): error C2061: 語(yǔ)法錯(cuò)誤: 標(biāo)識(shí)符“_Sizet”
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1789): error C2061: 語(yǔ)法錯(cuò)誤: 標(biāo)識(shí)符“_Sizet”
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1806): error C2146: 語(yǔ)法錯(cuò)誤: 缺少“;”(在標(biāo)識(shí)符“_Myoff”的前面)
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\vector(1806): error C4430: 缺少類(lèi)型說(shuō)明符 - 假定為 int噪伊。注意: C++ 不支持默認(rèn) int
解決方法是:
將報(bào)錯(cuò)的三處fabs函數(shù)替換為abs
在DIPDemoView.cpp中的OnFileRotate定義下,
將//swap<CImgProcess>(pdoc->m_Image, pdoc->m_OImage);
一行替換為 swap(pdoc->m_Image, pdoc->m_OImage);
即可編譯通過(guò).