文档章节

c#调用qtdll遇到的问题

伐罗密
 伐罗密
发布于 2017/07/31 11:00
字数 391
阅读 21
收藏 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所在文件夹目录,运行成功。

 

 

 

© 著作权归作者所有

共有 人打赏支持
伐罗密
粉丝 10
博文 20
码字总数 8081
作品 0
武汉
程序员
C#实现判断文件是否被占用与解除文件占用

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

北风其凉
2016/11/03
1K
0
uLua中遇到的问题

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

乐逍遥jun
2016/02/22
12
0
求助 : C# 代码 传数组给 js函数 ,会的进.

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

小杰瑞
2013/04/19
623
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
803
2

没有更多内容

加载失败,请刷新页面

加载更多

好用的vue组件

http://elickzhao.github.io/2017/08/vue%E4%B8%80%E4%BA%9B%E7%89%B9%E5%88%AB%E6%9C%89%E7%94%A8%E7%9A%84%E6%8F%92%E4%BB%B6/...

Littlebox
27分钟前
2
0
linux 源码安装mysql8

1.安装依赖 yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel   2.下载源码包 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-......

苏牧影子
27分钟前
1
0
BeanFactory和FactoryBean

BeanFactory BeanFactory是ioc容器的顶层接口,里面定义了一些容器基本的功能 类似ConfigurableBeanFatory和ApplicationContext就是比较高级的容器,除了基本的方法之外,还实现了很多高级的...

sendo
28分钟前
1
0
Java并发(9)- 从同步容器到并发容器

引言 容器是Java基础类库中使用频率最高的一部分,Java集合包中提供了大量的容器类来帮组我们简化开发,我前面的文章中对Java集合包中的关键容器进行过一个系列的分析,但这些集合类都是非线...

Ala6
33分钟前
3
0
Java定时器Timer学习之一

种类: 接通延时型定时器:接通延时型定时器是各种PLC(可编程控制器)中最常见最基本的定时器,这种定时器在Siemens的PLC中,成为SD型定时器 断开延时型定时器:这种定时器是当输入条件00000为ON时...

王怀楼
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部