开发环境:
1.vs2005
2.Windows mobile 2003/5.0
1.vs2005
2.Windows mobile 2003/5.0
注意:
1.打开VS2005->项目属性->c/c++->代码产生->Buffer Security Check ->NO/(GS)
然后编译,成功.
不打开(激活)缓冲保护,可以顺利在VS2005中编译先前的EVC代码.
因为基于CE4.2 (WM2003)系统里没有安全函数,而VS2005默认/GS编译先项
是打开的,主要是为了防止代码缓冲区益出,提高安全性。
所以我们要在VS2005中编译先前的EVC代码,可以用这种方法。但不推荐
,请用下面方法。
1.打开VS2005->项目属性->c/c++->代码产生->Buffer Security Check ->NO/(GS)
然后编译,成功.
不打开(激活)缓冲保护,可以顺利在VS2005中编译先前的EVC代码.
因为基于CE4.2 (WM2003)系统里没有安全函数,而VS2005默认/GS编译先项
是打开的,主要是为了防止代码缓冲区益出,提高安全性。
所以我们要在VS2005中编译先前的EVC代码,可以用这种方法。但不推荐
,请用下面方法。
2。打开VS2005->项目属性->链接器->命令行->加入secchk.lib
然后编译,成功。
填加secchk.lib,就是为了在基于CE4.2 (WM2003)系统里填加了安全函数
不必关闭VS2005的/GS编译选项。虽然生成代码多了1K,但这也是值得的。
因为secchk.lib提高安全性,有效防止缓冲区益出。推荐用此方法在VS2005
编译基于CE4.2 (WM2003)的EVC代码。
然后编译,成功。
填加secchk.lib,就是为了在基于CE4.2 (WM2003)系统里填加了安全函数
不必关闭VS2005的/GS编译选项。虽然生成代码多了1K,但这也是值得的。
因为secchk.lib提高安全性,有效防止缓冲区益出。推荐用此方法在VS2005
编译基于CE4.2 (WM2003)的EVC代码。
http://seraphim-zhai.spaces.live.com/blog/cns!B842D90502D29D25!287.entry
在msdn完整的说法是,建议在迁移evc的project时,
Ignore Specific Library(忽略特定库) 加上 oldnames.lib
AdditionalDependencies(附加依赖项)加上 commctrl.lib coredll.lib aygshell.lib secchk.lib ccrtrtti.lib
其实针对wm5.0的做法是:
编译选择ARM4,可以不起用混合调用,然后linker中的Target Machine选择Not Set