把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支持armv4

WM5.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的问题的更多相关文章

  1. VS2008 Pocket PC 2003 SE仿真程序上网设置

    设置大体分为3个步骤:Microsoft ActiveSync安装配置.Pocket PC 2003 SE仿真程序配置.Pocket PC 2003连接到Microsoft ActiveSync. 1 ...

  2. VS2008 Pocket PC 2003 SE VGA仿真程序网络设置

    最近对这个问题摸索的很久,都没有解决,今天终于搞定,现将大体设置步骤记录下来,以备回顾和方便别人查看,步骤如下: 1.打开VS2008,打开Windows Mobile设备中心(网上有下载). 2.连 ...

  3. VS2005工程增加SDK

    客户最近发过来一个VS2005的工程,此工程是基于Pocket PC 2003(ARMV4),需要改为我们WINCE6.0系统对应的SDK,下面具体说明如何添加新的SDK. 选择configurati ...

  4. VS2005工程的Device右边内容为空问题

    VS2005工程的Device右边内容为空问题 可能是刚刚在删除C盘一些文件或是这些文件因为某些原因丢失了,在打开WINCE6.0系统工程的时候,发现无法编译,才注意到VS2005工程的Device右 ...

  5. Windows 7专业版安装VS2005与WinCE6.0开发环境

    近期更新了自己的小黑从XP更新到WIN7专业版,我花了两天时间验证了下列软件安装在WIN7 PRO是完全兼容的. 1:2011年最新更新的SourceInsight3.50.0066版本,这个是支持W ...

  6. 阿里云SDK手册之java SDK

    进行阿里云sdk开发的前提是已经购买阿里云的相关服务才能调用阿里的相关接口进行开发.最近公司在做云管控的项目,于是进行下摘录总结. 一. 环境准备 阿里云针对不同的开发语言提供不同的sdk,由于项目用 ...

  7. android升级adt和sdk之后无法识别SDK Location的一个解决方式

    我把android的adt和sdk从4.0升级到4.2,发现eclipse的android设置里面原来列出的各种api level的platform消失了,而且无法新建android工程.而且检查过了 ...

  8. How to install WP 8.0 SDK if WP 8.1 SDK is installed?

    I have the Windows Phone 8.1 SDK on my dev pc installed together with VS 2013. I need to open some W ...

  9. 修改android studio中的avd sdk路径、avd sdk找不到的解决方案

    要进行Android应用程序的开发,首先就要搭建好Android的开发环境,所需要的工具有如下4个:1.java JDK:2.Android SDK:3.Eclipse:4.ADT 1.java JD ...

随机推荐

  1. ECSSHOP表结构

    ECSSHOP表结构 -- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint ...

  2. 父节点使用css的transform: translate(0, 0)时position:fixed在chrome浏览器中无效

    今天在做移动端的页面,无意间发现了一个Chrome浏览器下的一个bug,在使用CSS3的transform: translate(0, 0)属性对节点A进行位置转化,此时A节点下面有一个字节点B,节点 ...

  3. liger grid loadData

    function fn_Search() { var beginDt = $("#txtBegin").val(); var endDt = $("#txtEnd&quo ...

  4. Header:请求头参数详解

    Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html,application/json Accept-Charset 浏览器 ...

  5. 【Nhibernate】HQL 分页

    HQL IQuery query = NHibernateHelper.OpenSession() .CreateQuery( @"from Product"); query.Se ...

  6. 【Passport】微软过时的技术

    虽然已过时,没来得及体验,摘录一段别人的文章,假装对passport的了解 微软在过去的身份验证服务上,一直采用的Passport验证,但已经是N年前推出来的一个软件架构,当然也被软件界很多地方采用到 ...

  7. [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)(转)

    转载自:http://blog.csdn.net/onlyou930/article/details/9299169 分类: Objective-C2013-07-11 11:54 3420人阅读 评 ...

  8. 过滤菜鸟的iOS面试题-b

    网上已经有很多针对各种知识点的面试题,面试时有些人未必真正理解也能通过背题看上去很懂.我自己总结了4道面试题,好快速的判断这个人是否是一个合格的工程师,欢迎大家点评. 1.struct和class的区 ...

  9. JSP内置对象详解

    jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request ...

  10. JAVA-前台编码,后台解码

    前台 var objValue =window.encodeURI(window.encodeURI(queryObj)); alert(objValue); 后台 String descStr = ...