日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/4/16 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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
支持armv4
WM5.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的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。