windows应用中调用DLL一步步试验
试验环境:
PC:win10 build 10143
IDE: vs2015 RC
WinPhone: win10 build 10136
简单界面,点按钮,算加法
一、主程用C++
1、新建visual C++下的Blank App(windows universal),添加按钮及相应代码,可在PC跑,也可在WP跑
2、新建visual C++下的Blank App(windows universal),新建visual C++下的Dll(windows universal)
1)添加引用时,直接添加DLL工程,可在PC跑,也可以WP跑,可看到编译输出目录下的AppX目录中,DLL文件自己过来了
2)添加引用时,添加DLL文件,但是添加失败。于是,换常规添加方式,在链接中加入LIB路径,加入LIB文件,编译,过了。运行,失败,原因,DLL没拷到对应目录下,需手动拷到AppX目录,然后再运行,OK,在PC上过了。对于WP上,由于这么添加DLL,工程不会自动拷DLL,而手动拷也只能拷到PC上的编译输出目录,在WP上调的时候,好像DLL并未跟着过去,(输出目录显示A dependent dll was not found),个人不知道怎么拷到WP上,所以一直未运行成功(高手来指点下啊,怎么才可以在以前引DLL文件的方式下,使得可以在WP上跑)
3、新建visual C++下的Blank App(windows universal),新建WIN32下的DLL工程
1)添加引用时,直接添加DLL工程,失败,不允许添加
2)添加引用时,换常规方式添加,在链接中加路径,加库文件,编译,过了。运行,需手动拷DLL到AppX目录下才可运行,所以,PC过了,WP不知如何放到运行目录下,启动失败
二、主程用C#
1、新建C#的空商店工程,再添加一个winrt下的DLL工程,然后在商店工程中添加DLL工程的引用,失败,只能再添加一个visual c++的winrt组件工程,然后在商店工程中添加winrt组件的引用,在winrt组件工程中添加DLL的引用,这样可以添加成功,也可以在PC、WP下跑成功
2、将上面的DLL换成通用的WIN32DLL工程再试验,添加引用方式为,商店工程添加winrt组件,winrt组件中使用常规方式添库目录、库文件,在此方式下,PC上可以成功,在WP上还是老问题,DLL如何部署过去
三、调用注册表操作函数
1、在商店相关的工程中,有宏定义,使得注册表操作函数不允许被调用,在这些工程中不可以调。
2、新建一个WIN32动态库,这里面可以调用注册表操作函数,然后被商店程序调用。在PC上试验可以成功。但是存在的问题有:1)在WP上无法试,因为不会部署DLL;2)假如以后找到方法可以部署了,发布到应用商店时,是否有对应的检验,是否允许发布应用,这个不清楚,没有做到这一步,纯猜测;3)打算试一下X86模拟器模拟WP机器,但是依旧不知道运行的路径,DLL过不去(大神何在!!!)
windows应用中调用DLL一步步试验的更多相关文章
- Windows平台Go调用DLL的坑
最近的项目中,使用了GO来开发一些服务中转程序.业务比较简单,但是有一些业务需要复用原有C++开发的代码.而在WINDOWS,用CGO方式来集成C/C++代码并不是太方便.所以用DLL把C++的代码封 ...
- 在C++中调用DLL中的函数 (3)
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
- 在C++中调用DLL中的函数
如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...
- java中调用dll文件的两种方法
一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676 JNativ ...
- Windows平台Go调用DLL的坑(居然有这么多没听过的名词)
最近的项目中,使用了GO来开发一些服务中转程序.业务比较简单,但是有一些业务需要复用原有C++开发的代码.而在WINDOWS,用CGO方式来集成C/C++代码并不是太方便.所以用DLL把C++的代码封 ...
- 在C++中调用DLL中的函数(3)
1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...
- C#中调用Dll动态链接库
C#中调用Dll动态链接库 起始 受限于语言的不同,我们有的时候可能会用别人提供的函数及方法 或者其他的什么原因.反正就是要调!!! 恰巧别人所使用的的语言跟自己又不是一样的 这个时候想要调用别人的函 ...
- 在VS2012中采用C++中调用DLL中的函数 (4)
这两天因为需要用到VS2012来生成一个DLL代码,但是之前并没有用过DLL相关的内容,从昨天开始尝试调试DLL的文件调用,起初笔者在网络上找到了3片采用VSXXX版本进行调试的例子,相关的内容见本人 ...
- Unity中调用DLL库
DLL -- Dynamic Link Library(动态链接库文件),这里以Window平台为例. Unity支持的两种语言生成的DLL库(C++.C#),这里以C#为例,C++网上可以搜索很详细 ...
随机推荐
- Oracle字符串分割函数
今天在创建视图的时候,碰到一个问题,问题如下: 将字符格式为“XXX,YYY”分割出来,并且分割后作为两个字段放入视图中. 考虑使用字符分割函数,但是查找资料Oracle没有字符分割的函数(我对Ora ...
- Lua 学习笔记(二)
七.再论lua函数 1.lua中的函数被认为是带有词法定界和第一类值 a.词法定界:被嵌套的函数可以访问外部函数的变量 b.第一类值: lua中的函数可以放在变量中 (函数指针?) ...
- PCIE体系结构
http://blog.sina.com.cn/s/articlelist_1685243084_3_1.html BAR寄存器 http://zhidao.baidu.com/link?url=rE ...
- NSIS检测操作系统x64还是x86的问题。
想共同维护一个NSIS脚本文件的,不想搞两个版本的脚本文件了.开始想到了!if语句,没试过,不知道行不行得通.后来google了一下.可以用两个头文件搞定.参照下面链接 Reference: http ...
- Struct2(三) Struct2 标签
在上一篇 Struct2(二)中,我们新建了工程Struct2test用来验证hello World 程序,在index.jsp中,我们添加了一个Struct2 uri 标签用来创建一个指向hello ...
- Ugly Number II 解答
Question Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime ...
- 全球扫货指南:面向中国消费者的全球奢侈品旅游导购服务 |PingWest中文网
全球扫货指南:面向中国消费者的全球奢侈品旅游导购服务 |PingWest中文网 用"全球扫货指南
- 用Nginx实现Session共享的均衡负载
前言 大学三年多,也做个几个网站和APP后端,老是被人问到,如果用户多了服务器会不会挂,总是很尴尬的回答:“哈哈,我们的用户还少,到了服务器撑不住的时候,估计都上市了吧”.说是这么说,但是对于有强迫症 ...
- 用于防SQL注入的几个函数
不要相信用户的在登陆中输入的内容,需要对用户的输入进行处理 SQL注入: ' or 1=1 # 防止SQL注入的几个函数: addslashes($string):用反斜线引用字符串中的特殊字符' & ...
- 知方可补不足~CSS中的几个伪元素
对于一个很好的编辑器VS来说,它对于编程语句的自动提示功能是很强大的,有时,我们根本不需要看相关API,而直接看VS给我们的提示就可以完成一个新技术的学习了. 今天我们来说几个CSS中的伪元素,它们在 ...