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最明显的进步就是开始支持调 ...
随机推荐
- XP 安装
提供一下裝系統的詳細步驟,盡量詳細到每一步都有,希望能對樓主有所幫助,不盡之處還請樓主不吝指出!謝謝 装XP的步骤如下: 开机时,按del键, 进入bios界面,一般选左侧第二项,(Advanced ...
- Ubuntu下安装搜狗拼音输入法
Ubuntu默认输入法是ibus输入法,其实用着也可以了,但是说句实话在某些情况下真的不怎么智能.习惯了搜狗所以,查阅资料测试成功后整理如下, 1.安装搜狗拼音 sudo apt-add-reposi ...
- CentOS 7 之找回失落的ifconfig
自5号凌晨安装完centos7 minimal之后,一直没有机会时间(懒惰)来玩玩这个,实在惭愧,今天是周六,天下着小雨,所以收拾一下心情来学学一下这个系统: 开机登陆进去,想看看ip多少,于是很自然 ...
- MySQL历史版本下载(官方)
http://downloads.mysql.com/archives/community/ 社区版本(开源免费)
- Python 番外 消息队列设计精要
消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流的消息中间件,如老牌的Active ...
- GO求平均值
package main import "fmt" func main(){ sum:=0.0 avg:=0.0 xs:=" switch len(xs){ : avg= ...
- UltraEdit-32 恢复到初始默认配置
不小心把UltraEdit-32搞乱了,字体不管怎么设置,都回不去了..然后那些菜单也被弄得乱七糟八的....于是就想把这些设置都搞成默认的.重装UltraEdit-32.清理注册表.结果发现都没有用 ...
- zabbix如何选择适合的监控类型(107)
zabbix agent zabbix自带的客户端程序(被动模式),zabbix server主动向它收集监控数据.agent提供丰富的key,包括不限于cpu.内存.网络.磁盘.web等等.如果你不 ...
- BOT、BT、PPP形式介绍(1)
BOT.BT.PPP形式介绍 BOT1.什么是BOT BOT是英文Build-Operate-Transfer的缩写,即“建设-经营-转让”.实质上是基础设施投资.建设和经营的一种方式,以政府 ...
- bzoj1047-理想的正方形(二维单调队列)
题意: 给一个矩阵,给出行列和每个数,再给出一个N,求出所有N*N的子矩阵中最大值最小值之差的最小值解析: 暴力枚举肯定不行,这题可以用二维单调队列做,把同一行的连续N个点缩成一个点保存最大最小值预处 ...