Qt工程与vs的dll联合调试

Qt工程与vs的dll联合调试

一、前言

由于工程需要,本人用vs2013做了sdk,提供给Qt工程师调用,由于未曾有过qt的开发经验,过程遇到了很多问题,如c++的std::string不能跨环境的进程调用,dll中new出来的内存,在vs的工程正常 ,在Qt工程却总为不可访问的地址,一大堆问题,迫于无奈唯有自己用dll联调Qt程序。
具体遇到的问题,可以参考:https://blog.csdn.net/LittleLittleFish_xyg/article/details/83896675

二、调试步骤

1、新建vs的dll工程
创建dll的方法请参考:
https://blog.csdn.net/LittleLittleFish_xyg/article/details/83030430

可以看一下,qt是能正常运行dll的
在这里插入图片描述
2、新建Qt工程,配置dll。确保能正常调用dll,否则后续步骤无效
不懂配置的请参考:
https://blog.csdn.net/LittleLittleFish_xyg/article/details/83896107
在这里插入图片描述
3、vs工程联调Qt工程(可能有人疑惑,为何不是Qt调用dll的联调,是因为代码跟踪到dll,需要源码)
a、第一步先将qt工程的debug目录下所有文件,以及所需要的qt的dll拷贝到dll工程中的dll生成目录中,保证qt工程能跑
在这里插入图片描述
b、在Qt工程先做一下手脚,做个休眠,因为后面步骤需要手速,太慢,则程序已经跑完了。本人使用了20s时间。然后执行a步骤
在这里插入图片描述
c、双击运行qt工程,让他跑起来
在这里插入图片描述
d、在dll源码中,添加断点
在这里插入图片描述
e、快速点击“调试”—“附加到进程”,找到刚才的qt工程,确定
在这里插入图片描述
在这里插入图片描述
f、即可进入断点调试代码
在这里插入图片描述

三、学习心得

调试过程比较复杂,实际开发过程中遇到,接触新的知识,也是长知识了,调试时注意手速,休眠十秒,总是找不到qt工程,就销毁了,我也是尝试了很多次才演示成功,建议把时间调整长一点。

发布了83 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/LittleLittleFish_xyg/article/details/83901625