Silverlight C++ XRPack 版本不兼容的問(wèn)題及解決
使用:Silverlight C++
在為了解決錯(cuò)誤 :0XC00CEE2B 時(shí)在網(wǎng)上查找到不同的 XRPack 的兼容性有問(wèn)題,如下鏈接:
https://social.msdn.microsoft.com/Forums/en-US/c28d5513-984e-4c2f-bd02-fa59b8ddb517/embedded-silverlight-on-wec7-fails-to-start-with-hresult-of-0xc00cee2b?forum=winembnatapp
不同版本的 XRPack 生成的 *.baml 和 *.Compressed 不能通用
XRPack version 7.00.437:只生成了 *.baml
XRPack version 7.00.2825:生成了 *.baml 和 *.Compressed
當(dāng)使用 XRPack version 7.00.437 生成的 *.baml 時(shí),LoadResourceDictionary() 失敗。錯(cuò)誤信息如下代碼所示:
HRESULT?App::InitializeComponent() { RXamlSource?appXaml(GetHInstance(),?IDR_FRONT_LINK_UI_APP); HRESULT?hr?=?m_pApplication->LoadResourceDictionary(&appXaml,NULL); if(WC_E_XMLCHARACTER?==?hr) //?Error?Code:?0XC00CEE2B { printf("0x%x:?illegal?xml?character",hr); } return?hr; }?//?InitializeComponent
將 XRPack 的版本更換為:XRPack version 7.00.2825:后就能生成了 *.baml 和 *.Compressed,且沒(méi)有上述 0XC00CEE2B 的出錯(cuò)。
如果將調(diào)試生成的目錄中的文件全部刪除,再次編譯時(shí)會(huì)出現(xiàn)如下錯(cuò)誤:
1>.Front_Link_UIGenerated.rc2(8)?:?error?RC2135?:?file?not?found:?....OutPutexeFront_Link_UIApp.Compressed 1>.Front_Link_UIGenerated.rc2(9)?:?error?RC2135?:?file?not?found:?....OutPutexeFront_Link_UIMainPage.Compressed 1>.Front_Link_UIGenerated.rc2(10)?:?error?RC2135?:?file?not?found:?....OutPutexeFront_Link_UIPage_Link_001.Compressed
App.baml/App.Compressed,MainPage.baml/MainPage.Compressed,Page_Link_001.baml/Page_Link_001.Compressed 中后綴為 *.baml 的文件生成了,但后綴為 *.Compressed 的沒(méi)有生成。
解決方法:
將 Front_Link_UIGenerated.h 和 Front_Link_UIGenerated.rc2 文件刪除。
再次編譯,可以看到如下編譯 LOG:
1>Xaml:?e:WorkT9MainProcessT9_DebugCODECODE_UIBlendProjectFront_LinkFront_Link_UIApp.xaml 1>Baml:?e:WorkT9MainProcessT9_DebugCODECODE_UIOutPutexeFront_Link_UIApp.baml 1>Compile?Xaml?SUCCEEDED?(5.2%) 1>Xaml:?e:WorkT9MainProcessT9_DebugCODECODE_UIBlendProjectFront_LinkFront_Link_UIMainPage.xaml 1>Baml:?e:WorkT9MainProcessT9_DebugCODECODE_UIOutPutexeFront_Link_UIMainPage.baml 1>Compile?Xaml?SUCCEEDED?(26.4%) 1>Xaml:?e:WorkT9MainProcessT9_DebugCODECODE_UIBlendProjectFront_LinkFront_Link_UIPage_Link_001.xaml 1>Baml:?e:WorkT9MainProcessT9_DebugCODECODE_UIOutPutexeFront_Link_UIPage_Link_001.baml 1>Compile?Xaml?SUCCEEDED?(-36.0%)
在 Blend 中修改了頁(yè)面后,是需要導(dǎo)入到 VS2008 的。導(dǎo)入方法:
先在“解決方案資源管理器”中選中要更新的項(xiàng)目,點(diǎn)擊菜單“工具”,依次選擇:Windows Embedded Silverlight Tools -> Update Silverlight for windows Embedded Project...