针对个人的上一篇文章中提到的遇到的几个问题,做一下个人解答

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开发小记的更多相关文章

  1. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  2. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  3. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  4. UWP开发之控件:用WebView做聊天框

    目录 说明 WebView存在的价值 使用WebView的几个重要技巧 使用WebView做的聊天框 说明 大家都知道,无论是之前的Winform.WPF还是现在的IOS.Android开发中,都存在 ...

  5. Win10 UWP 开发系列:使用SQLite

    在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...

  6. Win 10 UWP开发系列:设置AppBarButton的图标

    在WP8以前,页面最下面的四个小圆按钮是不支持绑定的,WP8.1 RT之后,系统按钮升级成了AppBarButton,并且支持绑定了.在Win10 UWP开发中,按钮的样式发生了变化,外面的圆圈没有了 ...

  7. Win10/UWP开发—凭据保险箱PasswordVault

    PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...

  8. Win10/UWP开发—使用Cortana语音与App后台Service交互

    上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...

  9. Win10/UWP开发—使用Cortana语音指令与App的前台交互

    Win10开发中最具有系统特色的功能点绝对少不了集成Cortana语音指令,其实Cortana语音指令在以前的wp8/8.1时就已经存在了,发展到了Win10,Cortana最明显的进步就是开始支持调 ...

随机推荐

  1. IOS添加自定义字体库

    1.将需要的字体库xxx.ttf添加到工程中,注意一定要在copy bundle resources中存在,如果没有添加上去 2.在info.plist 文件中添加 fonts provided by ...

  2. 项目中redis类似MVC的使用

  3. 自定义 select 下拉菜单

    .selectBeautifyMainStyle{ color: #9fa0a0; font-size: 14px; font-family: "alegreya_sansthin" ...

  4. ThinkPHP内置函数详解D、F、S、C、L、A、I

    单字母函数D.F.S.C.L.A.I 他们都在ThinkPHP核心的ThinkPHP/Mode/Api/functions.php这个文件中定义. 下面我分别说明一下他们的功能: D() 加载Mode ...

  5. vmware workstation 7.0官方下载安装

    https://my.vmware.com/group/vmware/downloads#tab2 这里注册后可以下载到vmware的所有产品,可以下载到免费的vmplayer,以及收费的vmware ...

  6. nRF51 DFU 初始化包介绍及生成工具

    nRF51 DFU 初始化包 当升级数据包时,在应用程序映像传输之前,在DFU中需要初始化包来执行映像的安全检测.这个初始化包作为升级流程的一部分提供了安全检测机制,因此被升级的设备只能接收兼容的应用 ...

  7. MySQL数据库中日期中包涵零值的问题

    默认情况下MySQL是可以接受在日期中插入0值,对于现实来说日期中的0值又没有什么意义.调整MySQL的sql_mode变量就能达到目的. set @@global.sql_mode='STRICT_ ...

  8. MySQL锁等待分析【1】

    场景: 昨天业务系统上遇到了数据库慢的问题(对dcsdba.og_file_audit表的insert 慢&超时).分析后定位到是由于锁等待造成的.分析过程如下: 1.执行show proce ...

  9. (转) 如何命令查找linux系统版本!

    一.查看内核版本命令: 1) [root@SOR_SYS ~]# cat /proc/versionLinux version 2.6.18-238.el5 (mockbuild@x86-012.bu ...

  10. 必须用C模拟OS?

    ASM基本必要,至于高级语言就很难说了.去osdev wiki上一翻一堆各种语言实现的玩意. 一个模拟OS其实不太容易完整搭出来,反倒是直接构造内核的后顾之忧少(如果还有真的想在SIGALRM里耍什么 ...