现有代码移植到Metro App

一:工程配置

配置WinRT工程时要注意以下几点:

  1. 静态库工程General里的“Windows Store App Support”设成true
  2. C++\General下面的“Consume Windows Runtime Extension”设成Yes,设置该选项的目的是:引入MicroSoft C++/CX,如果你的工程代码是由C语言写的,并且没有调用Win32 API,不需要进行该项设置。否则.c文件都是无法在该选项下编译的。
  3. C++\Code Generation下的“Enable Minimal Rebuild”设成“No”
  4. C++\Precompiled Headers下的“Precompiled Header”设成“Not Using Precompiled Headers”
  5. C/C++\ Code Generation \ Basic Runtime Checks 设置为Default(是相关的全部工程,包括静态库和动态库)
  6. C/C++\ Code Generation \Runtime Library设置正确,当在Release模式下,要设置为Multi-threaded DLL。
  7. 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相关推荐

  1. Win8 Metro App里玩XNA:移植XNA游戏到Win8

    Win8 Metro App里玩XNA:移植XNA游戏到Win8   Ready ! 在本文中,将把一个WindowsPhoneXNA的游戏移植到Win8 Metro(Modern)风格上,直接在Wi ...

  2. OpenCV将现有算法移植到G-API的实例(附完整代码)

    OpenCV将现有算法移植到G-API的实例 OpenCV将现有算法移植到G-API的实例 OpenCV将现有算法移植到G-API的实例 #include "opencv2/opencv_m ...

  3. 基于MPI的H.264并行编码代码移植与优化

    2010 03 25 基于MPI的H.264并行编码代码移植与优化 范 文 洛阳理工学院计算机信息工程系 洛阳 471023 摘 要 H.264获得出色压缩效果和质量的代价是压缩编码算法复杂度的增加. ...

  4. Win8 Metro App里玩XNA:ContentPipeline内容管线问题

    Win8 Metro App里玩XNA:ContentPipeline内容管线问题   开了个头 本篇中其实没有真正解决Win8里XNA的ContentPipeline(内容管线)问题,而是说明如何使 ...

  5. STM32F103ZE TFT液晶代码移植

    TFT液晶移植 介绍 移植 注意 操作 移植好的代码 介绍 最近在学习TFT液晶,然后我用的是正点原子的板子,但是我看不明白正点原子的视频,在B站上看的野火的视频(有投币的,嘿嘿).野火的视频很详细, ...

  6. Windows 8 Metro App开发[8]处理Fullscreen, Snapped和Filled状态

    注:本系列学习帖子我在DevDiv.com移动开发社区原创首发 转载请注明出处:BeyondVincent(破船)@DevDiv.com 如果你有什么问题也可以前往交流 下面是首发地址: [DevDi ...

  7. 【STM32移植机智云】超详细教程#2ESP8266移植机智云教程‘代码移植’

    1.引言 本人购买了一个ESP8266的WiFi模块,想做一个物联网控制小灯的demo. 本文记录了基于机智云平台,移植代码,实现物联网小灯详细操作步骤. 并不是移植步骤很麻烦, 只是文章真的写的极其 ...

  8. cocos2d-x入门学习(五)跨版本代码移植实例之【梦幻连连看】

    <梦幻连连看>源代码来自原作者kuloveyouwei,他的版本是cocos2d-x 2.1.2, 他在博客中详细解读了源代码,其博客地址http://  blog.csdn.net/ku ...

  9. matlab代码移植C语言

    介绍一下将matlab代码移植成C语言的过程.利用matlab中自带的matlab转C/C++的工具,以一个具体的实例讲解具体的步骤,以及对过程中可能会出现的问题提供了解决方案. 目录 一.matla ...

最新文章

  1. osi七层协议和tcp/ip四层协议
  2. 在像Angular2这样的SPA应用中使用Google Analytics的方法
  3. Linux 命令详解(二)awk 命令
  4. 《信息安全系统设计基础》 实验五
  5. android if else语句,Android一起执行IF和ELSE语句
  6. birt报表模板只打印了第一行_财务系统全套表格模板201个!成为同事眼中的红人!低调分享...
  7. (40)FPGA四种常用逻辑门(或非门)
  8. mysql装载本地文件及模式匹配
  9. 新手学习selenium路线图(老司机亲手绘制)-学前篇
  10. [WPF系列]-DataBinding(数据绑定) 自定义Binding
  11. SVN客户端安装及使用
  12. 股指期货基差和升贴水介绍
  13. 51nod 2591 最终讨伐
  14. 程序员越来越多,大数据行业工资也越来越高
  15. day17-李大人part1
  16. Chrome插件开发先看这篇:如何实现一键上班赖皮
  17. Mvc请求的生命周期
  18. mysql 删除表中某一列的数据及删除某一列的方法
  19. NB-IoT物联网无线远传水表
  20. android x86兼容arm so,Android SO文件的兼容和适配

热门文章

  1. python爬虫——代理IP
  2. LeetCode 网易-1. 分割环(前缀和 + 哈希)
  3. 04.卷积神经网络 W1.卷积神经网络(作业:手动/TensorFlow 实现卷积神经网络)
  4. LeetCode MySQL 1369. 获取最近第二次的活动(over窗口函数)
  5. seaborn绘图入门2(distplot+kdeplot+jointplot+set_style)
  6. 【Kaggle】Intermediate Machine Learning(XGBoost + Data Leakage)
  7. LeetCode 123. 买卖股票的最佳时机 III(动态规划)
  8. 程序员面试金典 - 面试题 17.12. BiNode(BST中序遍历)
  9. 查看宝塔面板账号密码命令_宝塔面板升级到最新版图文教程
  10. rn 跳转至html5,ReactNative-从RN端跳转到原生界面