vs2005工程转wince5.0

时间:2021-01-14 17:53:14

vs2005工程转wince5.0,真机调试的配置过程。

弄了一天,终于成功了。

wince板子类型:三星,arm920



1:下载安装sdk(5.0)
http://download.microsoft.com/download/7/e/c/7ecbd388-7fb5-4e3e-b57f-12eaf7eb6136/setup.msi



2:下载安装Microsoft ActiveSync(6.1,for win7)
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