Qt中使用C#的dll
2022/4/9 14:49:17
本文主要是介绍Qt中使用C#的dll,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
记录一下Qt项目使用c#的dll
1.生成C#的dll。
代码:
namespace mathDll { public class MathLib { public int add(int a, int b) { return a + b; } } }
命令行:
csc /t:library math.cs
csc是C#的编译器,显然也是需要自己提前设置环境变量的。
2.新建一个Qt项目,这里以控制台项目举例
直接贴代码吧,利用dll中的类,以及它的共公有函数。
代码:
#include <QCoreApplication> #include <QDebug> #using "./math.dll" using namespace mathDll; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); MathLib ^math = gcnew MathLib(); qDebug()<<math->add(1,3); return a.exec(); }
至于引用dll的规范啥的,就需要自己了解了,本人也才接触,不是很懂。
问题:直接运行,它会提示托管代码需要/clr选项。
起初本来想着用vs2015打开这个项目,在配置里面修改为公共语言运行时支持的,结果又出现了新的错误。
新问题:/clr和/EHs命令行选项不兼容。
百度一搜:这就是正解了:
博客
按照该博客,回到Qt项目里面。
在test.pro末尾添加以下语句即可。
QMAKE_CXXFLAGS += /clr win* { QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa QMAKE_CXXFLAGS_STL_ON = /EHa }
然后重新qmake,再构建就好了。(必须先qmake一下)
这是会报错找不到dll。
所以,把math.dll复制到test.exe的同级目录下就好了。
运行结果:
此外:需要注意的是,编译器是msvc2015 32bit。没试过mingw,因为感觉不行。
这篇关于Qt中使用C#的dll的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具