vs2005工程转wince5.0,真机调试的配置过程。
弄了一天,终于成功了。
wince板子类型:三星,arm920
1:下载安装sdk(5.0)
http://download.microsoft.com/download/7/e/c/7ecbd388-7fb5-4e3e-b57f-12eaf7eb6136/setup.msi
http://1.hblt1.crsky.com/201004/MicrosoftActiveSync_6.1_Chs.zip
3:项目设置
(1. 当前项目右键-属性-平台修改为windows mobile x SDK
(2. 配置属性-C/C++-预处理器-预处理器定义栏里面:
NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;
$(PLATFORMDEFINES);WINCE;_WINDOWS;_USRDLL;TEST_DLL_EXPORTS;
$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE
(3. 链接器-输入-附加依赖项:strmbase.lib strmiids.lib(4. 链接器-系统-子系统栏-windows CE
//第(3步没做,因为提示找不到strmbase.lib。$(PLATFORMDEFINES)无法找到,原因不明。但是都没影响调试。
4:新建一个生成配置,活动解决方案平台:atandardsdk_500(armv4i)
选择这个配置
5:打开ActiveSync,连接设备到电脑。
6:在vs上点连接设备(工具栏上,前面选上windows ce 设备)
7:编译,出现无法打开<winresrc.h>,winresrc.h好像不是wince用的,不知道为什么预处理定义过_WIN32_WCE但是没作用,
于是在资源文件的定义文件中(resource.h),加入#define _WIN32_WCE 1就行了。
常见问题:
1:好多c函数不能用,比如sprintf,提示:err C2065: "sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA" : undeclared identifer.
不知道何解,最终在一个韩国的博客找了解决版本
Project >Settings > C/C++ > Gerneral > Preprocessor definitions(工程-属性-c/c++/预处理器/预处理定义)
加一个:STRSAFE_NO_DEPRECATE