当前位置: 首页 > news >正文

使用Qt调用HslCommunication(C++调用C#库)

使用C++/CLI 来调用C#的dll

任务分解:
1、实现C#封装一个调用hsl的dll;
2、实现C++控制台调用C#的dll库;
3、把调用C#的dll用C++再封装为一个dll;
4、最后再用Qt调用c++的dll;

填坑:
1、开发时VS需要安装CLI项目库,不然新建项目时找不到;
在这里插入图片描述
2、开发时需要安装这几个.net环境;

很可能是因为 C++/CLI 项目的 CLRSupport 属性和 TargetFramework 之间存在不匹配情况。

在这里插入图片描述
3、项目属性中设置;“公共语言运行时支持(/clr)”和“符合模式”设置为“否”;
在这里插入图片描述
4、错误 C1189 #error: <future> is not supported when compiling with /clr or /clr:pure. (编译源文件 main.cpp)
该报错是Qt中的库和CLR有冲突,所以需要把调用C#的dll另外再封装为一个dll做隔离;
5、result = DllMain(instance, reason, reserved);
运行时在这里崩溃,头文件不要暴露CLI的相关库,用纯虚基类或IMPL;

6、本机正常运行后拷贝到其他电脑后运行崩溃,需要安装.net;

.net8.0
.net5.0

参考:
https://blog.csdn.net/Charles_ke/article/details/133957818


http://www.mrgr.cn/news/93238.html

相关文章:

  • P3385 【模板】负环
  • 带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)
  • 使用sympy求解给定函数表达式的拉普拉斯变换
  • 十大经典排序算法简介
  • 【Linux跬步积累】—— 线程池详解(有源代码)
  • 选择排序算法
  • 离线地图显示
  • Redis数据结构——list
  • Redis数据结构——set
  • Java多线程与高并发专题——ConcurrentHashMap 在 Java7 和 8 有何不同?
  • C++————引用
  • 递归入手三维动态规划
  • Idea配置注释模板
  • 用CMake编译glfw进行OpenGL配置,在Visual Studio上运行
  • 图解MOE大模型的7个核心问题并探讨DeepSeekMoE的专家机制创新
  • 5年前问题的答案,如何造统计信息
  • Mybatis中的设计模式
  • 安装微软最新原版系统,配置好系统驱动并保留OOBE全新体验
  • JAVA入门——反射
  • 《Operating System Concepts》阅读笔记:p188-p199