-
C#教程之C#教程之C#调用C++(QT5.5.1项目)的C++/CLI(CLR项目
本站最新发布 C#从入门到精通
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
导航
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; } |
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能