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