VC++6.0转换至VS2008问题实例v.3
转自:http://blog.sina.com.cn/s/blog_76c8fbf00100rjgy.html
《精通Visual C++数字图像处理典型算法及实现》
VC++6.0-->VS2008:
1.
WINVER not defined. Defaulting to 0x0600 (Windows Vista)
#ifndef WINVER // Specifies that the minimum required platform is Windows Vista.
#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif
2.
error C2259: “CException”: 不能实例化抽象类
MFC较好地将异常封装到CException类及其派生类中,自成体系,下表给出了MFC 提供的预定义异常:
CMemoryException:内存不足
CFileException:文件异常
CArchiveException:存档/序列化异常
CNotSupportedException:响应对不支持服务的请求
CResourceException:Windows 资源分配异常
CDaoException:数据库异常(DAO 类)
CDBException:数据库异常(ODBC 类)
COleException:OLE 异常
COleDispatchException:调度(自动化)异常
CUserException:用消息框警告用户然后引发一般 CException 的异常
所以只要把上面的CException与异常类相对应的.比如文件异常,改成CFileException.
代码中采用将所有的CException改成了CFileException
3.
无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
1.菜单中选择 Project->Properties, 弹出Property Pages窗口
2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.
3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)
4.Rebuild All. Ok ?
4.
error C2039: “WriteHuge”: 不是“CFile”的成员
error C2039: “ReadHuge”: 不是“CFile”的成员
把Huge去掉即可