UWP开发小记
针对个人的上一篇文章中提到的遇到的几个问题,做一下个人解答
DLL部署的问题,可以将DLL添加到工程中,属性中设置content为true,这样,部署目录下就会有这个文件。
需要说明的是,这个文件确实过去了,在PC上可以直接看到,在模拟器上我用遍历当前目录的函数查了一遍,文件确实存在
但是,如果DLL是普通的WIN32DLL,在模拟器上依然报文件找不到的异常,个人推断是,这个DLL不知道还引了什么东西,所以不能正常用。如果是UWP的DLL就可以
最终的解决方案是:DLL需要有源码,重新创建UWP的DLL工程,将源码移植过来,调整使可编译过,这样,可以在所有平台和设备上可以正常用
另外,还做了一步发布到商店前的验证,会提示一些API不该被调用,策略是在编DLL时加入宏WINAPI_FAMILY=WINAPI_FAMILY_APP试一下
此处的一些内容,参考了 http://www.cnblogs.com/nio-nio/p/3410180.html ,可以去看一下
个人有点自己的观点提一下,主要是第二部分中复用DLL的图,首先,还有一种途径是直接将DLL源码写到运行时组件中,其次,在倒数第二条路子中,C#应该是可以直接调DLL的,比如通过DLLIMPORT的方式,只不过接口写起来比较麻烦
最近在用C++/CX封运行时组件提供的接口,有几点需要记一下备忘:
运行时接口中需public的才能被外面看到并调用,而且必须要在命名空间中,不能全局,而且命名空间必须和工程名一致
运行时接口中,字符串参数用Platform::String^,和std::string的转换可参考 http://www.cnblogs.com/zouzf/p/3984628.html
运行时接口中,如果参数用到map或vector,在声明中需要用Windows::Foundation::Collections::IMap^这种类似格式,而在实现中去创建对象时,用ref new Platform::Collections::Map;
运行时接口中,遇到了想传对象指针,但是不是运行时对象,网上有人提到接口中参数用Platform::UIntPtr这种类型,和指针互转时用return reinterpret_castPlatform::UIntPtr*(&m_pObj) 或 Pointer m_pObj = *reinterpret_cast(&value);
代码中,枚举用public enum class Color
{Red = 1,
Green,};
代码中,异步编程时也比较简单,在异步接口中,返回值为Windows::Foundation::IAsyncAction^,或同命名空间下的其它类,区别在于是否有返回值,是否有进度等,接口的实现中,调用Concurrency::create_async(this{}来写一个lambda表达式,表达式里面做同步的操作就可以了,在外面调的时候,使用await调就可以了。
该处参考了示例: https://msdn.microsoft.com/zh-cn/library/windows/apps/hh755833.aspx
对应的大部分API可以在这查到: https://msdn.microsoft.com/en-us/library/windows/apps/jj207212(v=vs.105).aspx
https://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx
以上,此记
UWP开发小记的更多相关文章
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- UWP开发之控件:用WebView做聊天框
目录 说明 WebView存在的价值 使用WebView的几个重要技巧 使用WebView做的聊天框 说明 大家都知道,无论是之前的Winform.WPF还是现在的IOS.Android开发中,都存在 ...
- Win10 UWP 开发系列:使用SQLite
在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...
- Win 10 UWP开发系列:设置AppBarButton的图标
在WP8以前,页面最下面的四个小圆按钮是不支持绑定的,WP8.1 RT之后,系统按钮升级成了AppBarButton,并且支持绑定了.在Win10 UWP开发中,按钮的样式发生了变化,外面的圆圈没有了 ...
- Win10/UWP开发—凭据保险箱PasswordVault
PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- Win10/UWP开发—使用Cortana语音指令与App的前台交互
Win10开发中最具有系统特色的功能点绝对少不了集成Cortana语音指令,其实Cortana语音指令在以前的wp8/8.1时就已经存在了,发展到了Win10,Cortana最明显的进步就是开始支持调 ...
随机推荐
- 关于js中的事件
这是第一篇技术性博客. 因为最近做的web版前端求职简历算是告一段落了(点此看简历).(稍微记录下吧:自从确定简历的简笔画风格后(因为刚开始设想的蓝天白云大树啥的不仅图片特难找而且做着做着就觉得有点俗 ...
- table-cell的手机应用场景
前言 最近在前端观察看见了这篇老文章,看见了元素居中的5种办法,其中提到了display:table-cell这个css显示的新属性,按照当时的浏览器市场来说想必兼容性会是糟糕的一比,但是现在这坛老酒 ...
- JAVA三大特性之多态
面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据 ...
- 一个oracle存储过程
打开plsql,在packages文件夹里新建存储过程 在sql窗口中运行如下语句 create or replace package SY_USER_PKG1 is TYPE MYCURSOR IS ...
- shell编程技术之-基础知识
一.脚本结构 linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的.相对命令行来说,开发效率提高.因此他的构架有2部分构成#!和命令序列.其中#!指明此脚本是用哪 ...
- android开发基本流程
------->Directory Structure Manifest.xml + activity/layout + R ------->Dalvik Debug Monitor Se ...
- #ifdef __cplusplus extern "C" {代码} 倒底是什么意思?
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } # ...
- Android开发多线程断点续传下载器
使用多线程断点续传下载器在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度,在下载过程中记录每个线程已拷贝数据的数量,如果下载中断,比如无信号断线.电量不足等情况下,这就需要使用到断点 ...
- 流风ASP.NET框架商业版-工作流1.0简介
流风ASP.NET框架商业版-工作流1.0简介 工作流简介 在流风ASP.NET框架商业版1.0推出后,就有集成工作流的想法,但是由于工作繁忙和其他事情的耽搁,时隔半年之久工作流1.0的版本才姗姗来迟 ...
- Android——自定义Actionbar左侧覆盖不全的解决方案
今天遇到一个很蛋疼的问题,就是在自定义Actionbar的时候,setCustomView中,自定义的view怎么也覆盖不了整个视图,左侧一直留有一个空白,看下图: 所写的部分代码如下: protec ...