当前位置:
首页 > Python基础教程 >
-
C#教程之C#调用C++(QT5.5.1项目)的C++/CLI(CLR项目
导航
1.编译环境
2.项目配置
1.设置附加包含目录
2.设置附加库目录
3.设置附加依赖项
3.CLR中各种定义
1.接口定义
2.类定义
3.枚举定义
4.属性定义
4.CLR中各种使用
1.类的实例化
2.命名空间的使用
5.CLR中数据类型的转换
1.String ^ 到 QString 的转换
2.QString 到 String ^ 的转换
3.char * 到 String ^
4.wchar_t * 到 String ^
5.数组的转换
1.编译环境
系统:windows10
环境:VS2010 + Qt5.5.1
2.项目配置
1.设置附加包含目录
1.此项设置包含的头文件,需要填入用到的.h文件目录
2.下图中的QTDIR是Qt5.5.1安装目录环境变量(默认路径:C:\Qt\Qt5.5.1\5.5\msvc2010)
2.设置附加库目录
1.此项设置引用的lib目录,如下图。
3.设置附加依赖项
1.此处设置指定的lib文件,一般不用填写。
3.CLR中各种定义
1.接口定义
2.类定义
3.枚举定义
4.属性定义
1.接口中定义:
2.类中定义:
4.CLR中各种使用
1.类的实例化
所有.net对象都需要使用gcnew进行创建,gcnew创建的对象不需要自己手动释放内存。
1
|
GTable ^ ret = gcnew GTable(); |
2.命名空间的使用
命名空间用于限定类,不同于C#,这里使用::进行分割。
1
|
virtual MyNameSpace::ITable ^ GetTable( int index); |
5.CLR中数据类型的转换
1.String ^ 到 QString 的转换
1
2
3
4
5
6
7
8
9
10
|
QString MarshalString(String ^ s) { using namespace Runtime::InteropServices; const char * chars = ( const char *)(Marshal::StringToHGlobalAnsi(s)).ToPointer(); string str = chars; QString ret = str.c_str(); Marshal::FreeHGlobal(IntPtr(( void *)chars)); return ret; } |
2.QString 到 String ^ 的转换
1
2
3
4
5
6
7
8
9
10
11
|
String ^ MarshalStringLocal8(QString os) { using namespace Runtime::InteropServices; if (os.isNull()) return nullptr; QByteArray data = os.toLocal8Bit(); char * str = new char [data.length() + 1]; strcpy_s(str, data.length() + 1, data.constData()); String ^ ret = Marshal::PtrToStringAnsi(static_cast<IntPtr>(str)); delete str; return ret; } |
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式