VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题
把VS2005工程有采用的Pocket PC 2003 SDK改为WINCE6.0 SDK,具体操作见链接
http://blog.csdn.net/loongembedded/article/details/9306225
改之后编译出错,错误信息如下:
1>Compiling...
1>UhfReader_windows.cpp
1>F:\Program Files\Microsoft VisualStudio 8\VC\ce\include\crtdefs.h(100) : fatal error C1189: #error : ERROR: Use of C runtime library internalheader file.
1>UhfReader_common.cpp
1>F:\Program Files\Microsoft Visual Studio8\VC\ce\include\crtdefs.h(100) : fatal error C1189: #error : ERROR: Use of C runtime library internalheader file.
1>UhfReader_API_Wince.cpp
1>F:\Program Files\Microsoft VisualStudio 8\VC\ce\include\crtdefs.h(100) : fatal error C1189: #error : ERROR: Use of C runtime library internalheader file.
1>stdafx.cpp
1>F:\Program Files\Microsoft VisualStudio 8\VC\ce\include\crtdefs.h(100) : fatal error C1189: #error : ERROR: Use of C runtime library internalheader file.
1>Generating Code...
“ERROR: Use of C runtime library internal header file.”是说使用了C运行库内部头文件引起了编译的错误,这个问题没有找到解决问题,但相关链接见下面:
http://bbs.csdn.net/topics/100070913
http://bbs.csdn.net/topics/350011943
换一种思路去解决编译的问题,打开UhfReader_API_Wince工程文件,把里面的PocketPC 2003 (ARMV4)替换为C5000W (ARMV4I)并保存,但这时候打开工程文件的时候显示的还是Pocket PC 2003 (ARMV4),如图1所示:
图1
还需要根据http://blog.csdn.net/loongembedded/article/details/9306225中的描述切换为C5000W(ARMV4I),再编译还是出错,信息如下:
1>UhfReader_windows.cpp
1>UhfReader_common.cpp
1>UhfReader_API_Wince.cpp
1>Generating Code...
1>Compiling resources...
1>Linking...
1>coredll.lib(COREDLL.dll) : fatalerror LNK1112: module machine type 'THUMB' conflicts with target machine type'ARM'
1> Project : warning PRJ0018 : The following environmentvariables were not found:
出错的信息指模块机器(指令)类型‘THUMB’和目标平台机器(指令)类型‘ARM’冲突,选择project-> properties -> Configuration Properties -> Linker -> Command Line-> Additional options的内容做如下几种处理均可以解决此问题:
1. 把/subsystem:windowsce,4.20 /machine:ARM/ARMPADCODE替换为/subsystem:windowsce,6.00可以解决此问题。
图2
因为我们采用的操作系统是WINCE6.0,这是最好的解决办法。
2. 在/subsystem:windowsce,4.20 /machine:ARM/ARMPADCODE后面增加/subsystem:windowsce,5.01 /machine:THUMB
/subsystem:windowsce,6.01 /machine:THUMB
如图3所示:
图3
此版本也可以解决此问题,但这两班办法编译的logo信息却不太一样,这两种解决问题的办法在程序运行的过程中,是否有差异,还有待验证:
图4
我们先回到前面,为什么会有“module machine type 'THUMB' conflicts with target machinetype 'ARM'”这个编译错误信息,在修改之前,roject ->properties -> Configuration Properties -> Linker -> Command Line ->Additional options的内容是“/subsystem:windowsce,4.20/machine:ARM /ARMPADCODE”,有其中的windowsce,4.20可知此工程是用EVC创建的,因为V2005创建的陈工都是windowsce5.0和6.0的,我们先来看msdn中关于迁移EVC工程到VS2005的相关描述:
图5
可见EVC工程中的ARM对应于VS2005的ARMV4,而ARMV4 -> 它只支持 32 位 ARMV4 指令;ARMV4T ->“T”代表 Thumb(16 位指令模式);ARMV4I->“I”代表交互作用(Interworking),它允许 32 位指令和 16 位指令共存。我们的SDK是基于WINCE6.0+ARMV4I创建的,所以就需要在Additional options替换为或是增加” /subsystem:windowsce,6.00”,而且WinCE系统对指令的支持如下:WM4.2/ppc2002/2003支持armv4WM5.0 支持armv4i
WINCE5.0和6.0支持ARMV4与ARMV4I
详细信息见http://msdn.microsoft.com/en-us/library/ee482410(v=winembedded.60).aspx
所以就不存在上面编译的错误信息
VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题相关推荐
- Pocket PC 2003中文模拟器
在用EVC中有自带的模拟器STANDSDK emulator,进行基于WinCE平台的开发时,Pocket PC 2003 SDK是必不可少的.在安装完PPC后可以安装其中文补丁第二版,这样模拟器所使 ...
- Pocket PC 2003 SE设备仿真器网络设置
1.下载虚拟网卡驱动程序 2.在PC上安装虚拟网卡驱动 3.在Visual Studio 2005中配置仿真器启动参数 4.配置Pocket PC 2003 SE 设备仿真器网卡参数 5.配置 ...
- WINCE6.0 SDK 模拟器下载与安装
在使用VS2008进行CE开发过程经常需求调试程序,和模拟程序执行,附件中是WINCE6.0模拟器(SDK),使用系统开发是可以模拟WINCE6.0操作系统运行 C#(CF)程序. 下载并安装完成后, ...
- 在pocket pc 2003上播放声音
在PPC上播放声音不像在PC上可以直接使用vs2005给提供的System.media命名空间中的方法.而只能调用外部的coredll.dll库.只能播放.wav文件,并且还不是所有的都能播,但现在我 ...
- VS2005工程增加SDK
客户最近发过来一个VS2005的工程,此工程是基于Pocket PC 2003(ARMV4),需要改为我们WINCE6.0系统对应的SDK,下面具体说明如何添加新的SDK. 选择configurati ...
- 基于Windows Mobile 2003 的 Pocket PC 为开发人员提供的新功能(转)
对于 Pocket PC 用户和开发人员来说,基于 Microsoft® Windows Mobile® 2003 的 Pocket PC 是一个非常重要的里程碑.Pocket PC 2003 基于新 ...
- Pocket PC/Smartphone软件安装包之制作DIY
Pocket PC/Smartphone软件安装包之制作DIY<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...
- 基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介
Microsoft Corporation 2003 年 8 月 适用于: Microsoft® eMbedded Visual Tools 3.0 - 2002 Edition Mi ...
- 用.net 2003开发Windows CE应用,解决与pocket pc通讯的问题
用.net 2003作Windows CE应用时,碰到一个问题.工程编译通过,但在部署到pocket pc时出现如下的错误: ------ 已启动部署: 项目: PDA, 配置: Debug Pock ...
最新文章
- 记真实自己,炫精彩人生---《爱记》app使用体验
- JAVA之JVM垃圾回收(GC)机制详解
- HDU-1170的解题报告
- SQL Server数据库管理常用SQL和T-SQL语句
- unity随笔(1)-材质、对象
- Zookeeper基于Java访问-权限
- hikaril连接sql2000_hikari连接池解析(版本:HikariCP-2.5.1.jar)
- udp程序启动后检测都是未启动_【例子教程】联想Leez P710 物联网AI物体检测
- 一次http请求中的信息
- 计算机网络苏州大学题库,苏州大学计算机网络样卷B[计科大类].doc
- 【备忘】elasticsearch所有版本的x-pack-sql-jdbc下载地址
- STM32F 驱动WS2812B (3) SPI+DMA
- zxr10交换机配置手册vlan_中兴ZXR10交换机配置
- 数据库 case wen条件语句的运用
- 还能这样玩——关于一些OI的黑(sao)科(cao)技(zuo)优化
- 鼠标右键菜单打开慢的解决方式
- 物联网流量池_如何搭建物联网卡流量池系统
- VSCode: Acquiring CodeLLDB platform package 自动加载不成功解决方案
- hexo-theme-next @modified LRH
- 【Redis】--- 不同数据结构命令
热门文章
- 007_Redis的Set数据类型
- python io流,Python io流会在列表理解中自动关闭吗?
- 自定义组合控件:Banner、轮播图、广告栏控件
- Oralce 目录结构
- Android 四大组件之——Acitivity(一)
- java中public、protected、default、private权限问题
- 过程 oracle 写在哪里,Oracle怎么写存储过程? 在什么地方写以及怎么调用?最好给个Sample 急(2)...
- php memcached 扩展下载,编译安装 PHP 的 Memcached 扩展
- java判断星期天_java实现一个月的最后一个星期天
- linux java socket编程_linux下java程序与C语言程序通过SOCKET通信的简单例子