最近安装了visual c++ 2005 express版,加上platform sdk之后,应该说已经能够做一些重要的事情了.
我做的第一个项目就是将以前写的一个应用改写,然后重新编译.本来以为加几行语句就可以了,后来发现绝非如此简单.
首先,vc加强了代码检查,对一些不安全的系统函数做了屏蔽,不让你使用.比如以前我用到的strcpy函数,这次就被检查出已过时,要求换成_tcscpy_s.后者比较安全,它增强了对字符串缓冲大小的检查,这样可以避免一些明显的溢出漏洞.其次,通过使用这个函数,程序可以轻松的在unicode和mbcs之间进行切换,只要修改一个宏定义就可以了.
其次,这个程序链接时用到了wininet.lib文件,这个需要手工添加到链接文件清单中去的.否则链接就会报找不到xxx模块.
最后,通过ide产生的exe文件,体积相当小,而且在本机执行没有问题,一旦放到其他未安装vc++ 2005 版本的机器上,就不能运行.无论是安装vc 2005 runtime或.net 2.0 sdk,都不能解决问题.
最后发现,在命令行下手工编译,居然可以.命令如下:
cl /EHsc 1.cpp wininet.lib
不过这个时候,源代码中应该采用mbcs,不能用unicode.
阅读(1532) | 评论(0) | 转发(0) |