Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425856
  • 博文数量: 116
  • 博客积分: 7087
  • 博客等级: 少将
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-19 23:32
文章分类

全部博文(116)

文章存档

2012年(1)

2011年(2)

2010年(10)

2009年(21)

2008年(18)

2007年(12)

2006年(21)

2005年(31)

我的朋友

分类: C/C++

2006-05-19 14:00:58

   最近安装了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) |
给主人留下些什么吧!~~