把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.06.0支持ARMV4ARMV4I

详细信息见http://msdn.microsoft.com/en-us/library/ee482410(v=winembedded.60).aspx

所以就不存在上面编译的错误信息

VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题相关推荐

  1. Pocket PC 2003中文模拟器

    在用EVC中有自带的模拟器STANDSDK emulator,进行基于WinCE平台的开发时,Pocket PC 2003 SDK是必不可少的.在安装完PPC后可以安装其中文补丁第二版,这样模拟器所使 ...

  2. Pocket PC 2003 SE设备仿真器网络设置

    1.下载虚拟网卡驱动程序  2.在PC上安装虚拟网卡驱动  3.在Visual Studio 2005中配置仿真器启动参数  4.配置Pocket PC 2003 SE 设备仿真器网卡参数  5.配置 ...

  3. WINCE6.0 SDK 模拟器下载与安装

    在使用VS2008进行CE开发过程经常需求调试程序,和模拟程序执行,附件中是WINCE6.0模拟器(SDK),使用系统开发是可以模拟WINCE6.0操作系统运行 C#(CF)程序. 下载并安装完成后, ...

  4. 在pocket pc 2003上播放声音

    在PPC上播放声音不像在PC上可以直接使用vs2005给提供的System.media命名空间中的方法.而只能调用外部的coredll.dll库.只能播放.wav文件,并且还不是所有的都能播,但现在我 ...

  5. VS2005工程增加SDK

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

  6. 基于Windows Mobile 2003 的 Pocket PC 为开发人员提供的新功能(转)

    对于 Pocket PC 用户和开发人员来说,基于 Microsoft® Windows Mobile® 2003 的 Pocket PC 是一个非常重要的里程碑.Pocket PC 2003 基于新 ...

  7. Pocket PC/Smartphone软件安装包之制作DIY

    Pocket PC/Smartphone软件安装包之制作DIY<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...

  8. 基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介

    Microsoft Corporation 2003 年 8 月 适用于:     Microsoft® eMbedded Visual Tools 3.0 - 2002 Edition     Mi ...

  9. 用.net 2003开发Windows CE应用,解决与pocket pc通讯的问题

    用.net 2003作Windows CE应用时,碰到一个问题.工程编译通过,但在部署到pocket pc时出现如下的错误: ------ 已启动部署: 项目: PDA, 配置: Debug Pock ...

最新文章

  1. 记真实自己,炫精彩人生---《爱记》app使用体验
  2. JAVA之JVM垃圾回收(GC)机制详解
  3. HDU-1170的解题报告
  4. SQL Server数据库管理常用SQL和T-SQL语句
  5. unity随笔(1)-材质、对象
  6. Zookeeper基于Java访问-权限
  7. hikaril连接sql2000_hikari连接池解析(版本:HikariCP-2.5.1.jar)
  8. udp程序启动后检测都是未启动_【例子教程】联想Leez P710 物联网AI物体检测
  9. 一次http请求中的信息
  10. 计算机网络苏州大学题库,苏州大学计算机网络样卷B[计科大类].doc
  11. 【备忘】elasticsearch所有版本的x-pack-sql-jdbc下载地址
  12. STM32F 驱动WS2812B (3) SPI+DMA
  13. zxr10交换机配置手册vlan_中兴ZXR10交换机配置
  14. 数据库 case wen条件语句的运用
  15. 还能这样玩——关于一些OI的黑(sao)科(cao)技(zuo)优化
  16. 鼠标右键菜单打开慢的解决方式
  17. 物联网流量池_如何搭建物联网卡流量池系统
  18. VSCode: Acquiring CodeLLDB platform package 自动加载不成功解决方案
  19. hexo-theme-next @modified LRH
  20. 【Redis】--- 不同数据结构命令

热门文章

  1. 007_Redis的Set数据类型
  2. python io流,Python io流会在列表理解中自动关闭吗?
  3. 自定义组合控件:Banner、轮播图、广告栏控件
  4. Oralce 目录结构
  5. Android 四大组件之——Acitivity(一)
  6. java中public、protected、default、private权限问题
  7. 过程 oracle 写在哪里,Oracle怎么写存储过程? 在什么地方写以及怎么调用?最好给个Sample 急(2)...
  8. php memcached 扩展下载,编译安装 PHP 的 Memcached 扩展
  9. java判断星期天_java实现一个月的最后一个星期天
  10. linux java socket编程_linux下java程序与C语言程序通过SOCKET通信的简单例子