W pakiecie jest skompilowany plik Cr2Codec.exe, a jego ikonka – niebieskie wieżowce – sugeruje, że go skompilowano C++ Builderem.
Dla próby spróbowałem MS Visual C++:
cl cr2codec.cpp getput.cpp rawutl.cpp tiffut`code>`
tiffutl.cpp(121) : error C2105: '++' needs l-value
tiffutl.cpp(125) : error C2105: '++' needs l-value
tiffutl.cpp(144) : error C2105: '++' needs l-value
tiffutl.cpp(148) : error C2105: '++' needs l-value
tiffutl.cpp(165) : error C2105: '++' needs l-value
tiffutl.cpp(181) : error C2105: '++' needs l-value
tiffutl.cpp(192) : error C2105: '++' needs l-value
oraz GCC:
gcc cr2codec.cpp getput.cpp rawutl.cpp tiffut`code>`
tiffutl.cpp:121: error: lvalue required as increment operand
tiffutl.cpp:125: error: lvalue required as increment operand
tiffutl.cpp:144: error: lvalue required as increment operand
tiffutl.cpp:148: error: lvalue required as increment operand
tiffutl.cpp:165: error: lvalue required as increment operand
tiffutl.cpp:181: error: lvalue required as increment operand
tiffutl.cpp:192: error: lvalue required as increment operand
Czyli generalnie ten sam problem. Być może C++ Builder dopuszcza te linijki. Nie mam jak sprawdzić niestety.
Edit: jeszcze próba z Watcom C++:
wcl386 cr2codec.cpp getput.cpp rawutl.cpp tiffutl.cpp
TiffUtl.cpp(121): Error! E591: col(34) operand must be an lvalue (cast produces rvalue)
TiffUtl.cpp(125): Error! E591: col(34) operand must be an lvalue (cast produces rvalue)
TiffUtl.cpp(144): Error! E591: col(34) operand must be an lvalue (cast produces rvalue)
TiffUtl.cpp(148): Error! E591: col(34) operand must be an lvalue (cast produces rvalue)
TiffUtl.cpp(165): Error! E591: col(32) operand must be an lvalue (cast produces rvalue)
TiffUtl.cpp(181): Error! E591: col(32) operand must be an lvalue (cast produces rvalue)
TiffUtl.cpp(192): Error! E591: col(30) operand must be an lvalue (cast produces rvalue)
Wychodzi że to jakaś borlandowska konstrukcja niedopuszczalna w żadnym innym kompilatorze...