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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

把VS2005工程有采用的Pocket PC 2003 SDK改為WINCE6.0 SDK,具體操作見(jiàn)鏈接

http://blog.csdn.net/loongembedded/article/details/9306225

改之后編譯出錯(cuò),錯(cuò)誤信息如下:

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.”是說(shuō)使用了C運(yùn)行庫(kù)內(nèi)部頭文件引起了編譯的錯(cuò)誤,這個(gè)問(wèn)題沒(méi)有找到解決問(wèn)題,但相關(guān)鏈接見(jiàn)下面:

http://bbs.csdn.net/topics/100070913

http://bbs.csdn.net/topics/350011943

?

換一種思路去解決編譯的問(wèn)題,打開(kāi)UhfReader_API_Wince工程文件,把里面的PocketPC 2003 (ARMV4)替換為C5000W (ARMV4I)并保存,但這時(shí)候打開(kāi)工程文件的時(shí)候顯示的還是Pocket PC 2003 (ARMV4),如圖1所示:


圖1

還需要根據(jù)http://blog.csdn.net/loongembedded/article/details/9306225中的描述切換為C5000W(ARMV4I),再編譯還是出錯(cuò),信息如下:

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:

出錯(cuò)的信息指模塊機(jī)器(指令)類(lèi)型‘THUMB’和目標(biāo)平臺(tái)機(jī)器(指令)類(lèi)型‘ARM’沖突,選擇project-> properties -> Configuration Properties -> Linker -> Command Line-> Additional options的內(nèi)容做如下幾種處理均可以解決此問(wèn)題:

1.? 把/subsystem:windowsce,4.20 /machine:ARM/ARMPADCODE替換為/subsystem:windowsce,6.00可以解決此問(wèn)題。


圖2

因?yàn)槲覀儾捎玫牟僮飨到y(tǒng)是WINCE6.0,這是最好的解決辦法。

?

2.? 在/subsystem:windowsce,4.20 /machine:ARM/ARMPADCODE后面增加/subsystem:windowsce,5.01 /machine:THUMB

/subsystem:windowsce,6.01 /machine:THUMB

如圖3所示:


圖3

此版本也可以解決此問(wèn)題,但這兩班辦法編譯的logo信息卻不太一樣,這兩種解決問(wèn)題的辦法在程序運(yùn)行的過(guò)程中,是否有差異,還有待驗(yàn)證:


圖4

我們先回到前面,為什么會(huì)有“module machine type 'THUMB' conflicts with target machinetype 'ARM'”這個(gè)編譯錯(cuò)誤信息,在修改之前,roject ->properties -> Configuration Properties -> Linker -> Command Line ->Additional options的內(nèi)容是“/subsystem:windowsce,4.20/machine:ARM /ARMPADCODE”,有其中的windowsce,4.20可知此工程是用EVC創(chuàng)建的,因?yàn)閂2005創(chuàng)建的陳工都是windowsce5.0和6.0的,我們先來(lái)看msdn中關(guān)于遷移EVC工程到VS2005的相關(guān)描述:


圖5

可見(jiàn)EVC工程中的ARM對(duì)應(yīng)于VS2005的ARMV4,而ARMV4 -> 它只支持 32 ARMV4 指令ARMV4T ->“T”代表 Thumb(16 位指令模式)ARMV4I->“I”代表交互作用(Interworking),它允許 32 位指令和 16 位指令共存?。我們的SDK是基于WINCE6.0+ARMV4I創(chuàng)建的,所以就需要在Additional options替換為或是增加” /subsystem:windowsce,6.00”,而且WinCE系統(tǒng)對(duì)指令的支持如下:
WM4.2/ppc2002/2003
支持armv4
WM5.0
支持armv4i

WINCE5.06.0支持ARMV4ARMV4I

詳細(xì)信息見(jiàn)http://msdn.microsoft.com/en-us/library/ee482410(v=winembedded.60).aspx

所以就不存在上面編譯的錯(cuò)誤信息

?

總結(jié)

以上是生活随笔為你收集整理的VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。