使用VS2010 编译从vc6.0复制过来的原工程文件源码。提示错误很多。感觉无从下手。很多原始的函数和API参数都提示类型
错误或者不兼容。百度一下,第一个问题:
vc6.0使用ASIIC字符,而VS2010默认选项使用unicode. 在工程上面右键属性,把默认字符集修改为
"No Set",如下图所示
重新编译整个解决方案,很多原先类型不匹配的错误消失。如:char*和char数组无法转换。TCHAR 和 LPCWSTR 无法转换等。
第二个问题,一个解决方案里面,建立了多个工程。一直提示无法找到外部符号LNK2019错误。百度很多,都是说头文件没有定义等等。其实,应该
把握一个原则:那就是,多个工程,只有一个是主工程,将来会编译成exe文件,其他工程都是辅助的。只能编译为.lib或者dll。然后在连接的时候包含
进来。我的低级错误时,多个工程文件,上图的Configuration Type 都是Application(.exe). LNK2019错误的原因里面:一部分是辅助的工程文件找不到
main(console)或winmain(windows),主工程文件里面找不到连接的其他工程文件函数。把辅助工程文件的 Configuration Type 修改为.lib或dll 就可以了。
再把linker 选项设置一下就可以了。