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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

现有代码移植到Metro App

發布時間:2024/7/19 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现有代码移植到Metro App 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現有代碼移植到Metro App

一:工程配置

配置WinRT工程時要注意以下幾點:

  • 靜態庫工程General里的“Windows Store App Support”設成true
  • C++\General下面的“Consume Windows Runtime Extension”設成Yes,設置該選項的目的是:引入MicroSoft C++/CX,如果你的工程代碼是由C語言寫的,并且沒有調用Win32 API,不需要進行該項設置。否則.c文件都是無法在該選項下編譯的。
  • C++\Code Generation下的“Enable Minimal Rebuild”設成“No”
  • C++\Precompiled Headers下的“Precompiled Header”設成“Not Using Precompiled Headers”
  • C/C++\ Code Generation \ Basic Runtime Checks 設置為Default(是相關的全部工程,包括靜態庫和動態庫)
  • C/C++\ Code Generation \Runtime Library設置正確,當在Release模式下,要設置為Multi-threaded DLL。
  • app中添加Microsoft Visual C++ Runtime Package的Reference
  • ?

    二: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的全部內容,希望文章能夠幫你解決所遇到的問題。

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