现有代码移植到Metro App
現(xiàn)有代碼移植到Metro App
一:工程配置
配置WinRT工程時(shí)要注意以下幾點(diǎn):
?
二:WACK檢測(cè)
1: 在編譯工程中,會(huì)發(fā)現(xiàn)很多以前支持的Win32 API已經(jīng)不支持了,我們使用Metro App替換即可。
? ? 在替換已經(jīng)不支持的api過(guò)程中可以參考這篇文章?http://blog.csdn.net/my_business/article/details/7895879
2:當(dāng)編譯通過(guò)后,就可以認(rèn)證了,有兩點(diǎn)需要注意:(1):庫(kù)必須是Release版本的(注意工程配置中的第六點(diǎn))。(2)WACK只能檢測(cè)App,所以庫(kù)需要和app一起檢測(cè)。
? ?認(rèn)證包的生成可以參考這篇文章http://www.cnblogs.com/linyehui/archive/2012/05/08/winrt-for-win32-programmers-part-ii-port-code-to-winrt.html
3:認(rèn)證過(guò)程中會(huì)出現(xiàn)很多錯(cuò)誤。
? ?常見(jiàn)的錯(cuò)誤處理可以參考這篇文章http://www.cnblogs.com/chenkai/archive/2013/01/25/2877274.html
?
以下兩個(gè)錯(cuò)誤是我工作中碰到的,上述文章中沒(méi)有設(shè)計(jì),現(xiàn)在與大家分享解決方案
錯(cuò)誤1:
類(lèi)似API xxxxx invccorlib110.dll(或者msvcr110.dll) is not supported for thisapplication type.
這里的重點(diǎn)是調(diào)用了vccorlib110.dll(或者msvcr110.dll),解決方案是,在你的app中添加Microsoft Visual C++ Runtime Package即可。
?
錯(cuò)誤2:
此應(yīng)用程序類(lèi)型不支持 kernel32.dll 中的 API GetModuleFileNameW。xxx.dll 調(diào)用此 API。
此應(yīng)用程序類(lèi)型不支持 kernel32.dll 中的 API LoadLibraryExW。xxx.dll 調(diào)用此 API。
此應(yīng)用程序類(lèi)型不支持 kernel32.dll 中的 API LoadLibraryW。xxx.dll 調(diào)用此 API。
首先你要保證你的程序和庫(kù)沒(méi)有這三個(gè)函數(shù),
如果確實(shí)沒(méi)有引用這三個(gè)函數(shù),請(qǐng)查看你全部工程的工程配置,有沒(méi)有這么設(shè)置C/C++\ Code Generation \ Basic Runtime Checks 設(shè)置為Default,就是工程配置中的第五點(diǎn).
?
錯(cuò)誤3:OutputdebugString
程序中不要調(diào)用OutputdebugString,雖然該函數(shù)是合法的,但是無(wú)法通過(guò)WACK,所以在生成程序的時(shí)候,一定要把去掉全部的OutputdebugString.OutputdebugString包括OutputdebugStringA和OutputdebugStringW
轉(zhuǎn)載于:https://www.cnblogs.com/frank2020/p/3395240.html
總結(jié)
以上是生活随笔為你收集整理的现有代码移植到Metro App的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用文件监控对象FileSystemWa
- 下一篇: 稀疏矩阵的压缩存储--十字链表(转载)