文档章节

c#调用qtdll遇到的问题

伐罗密
 伐罗密
发布于 2017/07/31 11:00
字数 391
阅读 22
收藏 0

环境:vs2015+qt5.8

参考:http://blog.csdn.net/zuoyefeng1990/article/details/70885220

网上的教程一边倒的使用qtwinmigrate,qt团队提供了这个项目,

1.准备阶段

先download下来

https://github.com/qtproject/qt-solutions.git

使用2015的qt插件导入qtwinmigrate文件夹下的qtwinmigrate.pro文件,很意外的一次性编译通过了,因为还下载过一些示例代码,但是一直报头文件找不到的错误,可能是qt版本差异导致的。

编译完成后,winhost和winwidget两个项目作为启动项时,都能正常运行,准备阶段完成

2.编写测试工程

独立开工程编写完c#的参考程序之后,调用qtdialog.dll,编译通过,但是运行报错,

[DllImport("qtdiaolog.dll")]

改为绝对路径

[DllImport(@"d:\****\qtdiaolog.dll")]

依旧报错,“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)”

3.排错

感觉比较眼熟,网上搜了一下,是编译环境造成的,qt的工程输出的是x64,而c#工程是AnyCpu,将c#输出改为x64之后,错误成了

无法加载 DLL xxxxxxxx找不到指定的模块。 (异常来自HRESULT:0x8007007E)。

这下看似很明确了,dll没找到,于是切换相对路径和绝对路径又试了一次,结果还是不行,上网继续查找,发现可能是库依赖造成dll加载失败

打开Depends.exe,打开dll,发现QT的几个dll,于是将QT5CORED.DLL,QT5GUID.DLL,QT5WIDGETSD.DLL(debug模式下)和qtdiaolog.dll全部拷到exe所在文件夹目录,运行成功。

 

 

 

© 著作权归作者所有

共有 人打赏支持
下一篇: sublime-cesium
伐罗密
粉丝 11
博文 21
码字总数 8457
作品 0
武汉
程序员
私信 提问
uLua中遇到的问题

1.C#调用lua函数参数为空的问题 在C#中调用以(:)定义的函数传参时,self被第一个参数覆盖,而obj将为空 MessagePanel = {}; function MessagePanel:Test1(obj)--lua调用正常,obj为传入参数...

乐逍遥jun
2016/02/22
12
0
C#实现判断文件是否被占用与解除文件占用

最近遇到一个问题,我在实现一个C#客户端的附件上传功能时,只能上传未被其他进程占用的文件,因此每次上传文件前需要先判断被选中文件是否被占用。尤其是PDF文件,当以AdobeReaderXI打开时,...

北风其凉
2016/11/03
1K
0
求助 : C# 代码 传数组给 js函数 ,会的进.

本人菜鸟,现在开发中遇到一个问题,涉及到C#与js交互传值,函数调用。 我想知道C#代码与JS代码是怎么交互的,现在普遍用的是技术。求比较了解的大牛给个解答。 谢谢!

小杰瑞
2013/04/19
637
5
.NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用

今天为了应对一个工作中遇到的场景,研究了下使用.NET中自带的WebBrowser时内部的JS代码与外部的C#代码相互调用的问题 我的操作系统为Win7旗舰版,IDE版本为VS2012,.NET版本为4.5 经过测试我...

北风其凉
2016/03/19
576
0
WP的类库与C#的类库不完全一样吗??

1.今日遇到一些问题,颇为不解: 明明用C#写的语句,为什么不能在wp中运行? 例如:C#中bitmapimage类中,有一个函数copypixels(); 奈何,在wp中调用该函数,却出现错误提醒:说什么此类中...

qytty
2012/08/08
816
2

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部