文档章节

c#调用qtdll遇到的问题

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

 

 

 

© 著作权归作者所有

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

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

北风其凉 ⋅ 2016/11/03 ⋅ 0

求助 : C# 代码 传数组给 js函数 ,会的进.

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

小杰瑞 ⋅ 2013/04/19 ⋅ 5

uLua中遇到的问题

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

乐逍遥jun ⋅ 2016/02/22 ⋅ 0

WP的类库与C#的类库不完全一样吗??

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

qytty ⋅ 2012/08/08 ⋅ 2

.NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用

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

北风其凉 ⋅ 2016/03/19 ⋅ 0

把用Qt窗口界面编写的功能, 编译成DLL, 可以直接在Qt程序里调用, 弹出这个窗口. 现在想用C#调用这个DLL, 弹出这个窗口. 不知是否可行? 怎么实现??

@retioa 你好,想跟你请教个问题: “把用Qt窗口界面编写的功能, 编译成DLL, 可以直接在Qt程序里调用, 弹出这个窗口. 现在想用C#调用这个DLL, 弹出这个窗口. 不知是否可行? 怎么实现?? ”十一...

奶油饼干 ⋅ 2017/03/16 ⋅ 0

C++动态库初探

近期公司需要开发三方动态库接口,虽然未分配到我的身上,但还是饶有兴趣的回忆了一下C++,并尝试使用Visual C++ 开发一个小的动态库接口例子。以下就是这几日开发经验。 第一步在 Visual C...

洛山红茶 ⋅ 2017/02/22 ⋅ 0

Metro C#中调用C++中的DLL

g10589119在【windows8开发】深入浅出C++/CX一文中提出了一下这个问题,特以此文进行回复,大家如果有不同意见和想法可以留言分享下。g10589119的问题如下: ------------------------------...

zting科技 ⋅ 2017/10/19 ⋅ 0

c# 如何设置 TCP_NODELAY

大神好!我是一个喜欢编点小工具的编程菜鸟,这两天在论坛里发现了HP-Socket这个好东西,偷懒下载后用了一下,感觉非常好用,就是在使用的时候遇到点小问题,希望您能帮忙详细解答一下! 问题...

草莽lee ⋅ 02/06 ⋅ 0

关于C#客户端调用java cxf webservice加入ws-security验证的的问题

各位好,我现在再C#做webservice的客户端,调用java cxf webservice框架提供的webservice服务,但是cxf加入了ws-security用户认证采用的是usernameToken的方式要求客户端传递一个用户名和密码...

小文大哥哥 ⋅ 2012/04/10 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 39分钟前 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部