c++.net 托管类封装非托管类
C++.net中非托管的代码虽然在托管里面可以直接使用,但是有时候却会被限制。比如当需要用托管里面的 ArrayList 存储一个非托管的对象的时候就需要用一个托管的类把这个非托管的类封装一下,其他的封装的原因我也没想到,刚开始接触c++.net,基本是需要什么学什么,我是这个原因才去封装的。
比如一个非托管的类如下
class serverInfo{public:serverInfo();~serverInfo();string CSTR_DBIPADDRESS; //数据库ip地址};
然后对其进行封装
ref class serverInfoManaged{public:serverInfoManaged():m_sc(new serverInfo()){}~serverInfoManaged(){delete m_sc;}String^ GetDBIP(){return (gcnew String(m_sc->CSTR_DBIPADDRESS.c_str()));}void SetDBIP(String^ DBIP){m_sc->CSTR_DBIPADDRESS = convertStringtoStr(DBIP);}private:!serverInfoManaged(){delete m_sc;}private:serverInfo* m_sc;};
然后就可以直接使用了
比如在Arraylist添加server对象
ArrayList^ AddServers(){ArrayList^ al = gcnew ArrayList();For (int i = 0; i<5; i++){serverInfoManaged^ sc = gcnew serverInfoManaged();sc->SetDBIP("127.0.0.1");al->Add(sc);}return al;}
c++.net 托管类封装非托管类相关推荐
- C#Maeshal类——托管资源和非托管资源转换
C#--Marshal.StructureToPtr方法简介 http://blog.csdn.net/livelylittlefish/article/details/2423764 ...
- C# 托管资源与非托管资源
C# 托管资源与非托管资源 在.net 编程环境中,系统的资源分为托管资源和非托管资源. 托管资源: Net平台中,CLR为程序员提供了一种很好的内存管理机制,使得程序员在编写代码时不要显式的去释放自 ...
- 托管资源和非托管资源
在.net 编程环境中,系统的资源分为托管资源和非托管资源. 对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作.也就是说对 ...
- .NET中的托管资源与非托管资源
托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收. 非托管资源指的是.NET不知道如何回 ...
- C# 托管资源和非托管资源
原文地址:http://blog.csdn.net/zlwzlwzlw/article/details/7918633 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托 ...
- C# 托管资源和非托管资源(Dispose、析构函数)
https://www.cnblogs.com/herenzhiming/articles/9691524.html 资源分类: 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内 ...
- 关于Dll、Com组件、托管dll和非托管dll的理解
Com组件和dll区别: 1.普通dll不能通过regsvr32.exe来注册,而Com组件能通过regsvr32.exe注册. 2.Com组件是微软的一个协议,满足com组件协议的dll文件就是co ...
- 编写高质量代码改善C#程序的157个建议——建议50:在Dispose模式中应区别对待托管资源和非托管资源...
建议50:在Dispose模式中应区别对待托管资源和非托管资源 真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源. 提供给调用者调用 ...
- C# 托管内存与非托管内存之间的转换
C# 托管内存与非托管内存之间的转换 c#有自己的内存回收机制,所以在c#中我们可以只new,不用关心怎样delete,c#使用gc来清理内存,这部分内存就是managed memory,大部分时候我 ...
最新文章
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
- BCH链上交易量翻5倍的背后隐藏着哪些秘密?
- 一千个不用 Null 的理由,你还用?
- Python线程指南
- 就是要让你搞懂 Nginx,这篇就够了!
- ubuntu16.04下面用sublime运行scala代码
- 报错:不是可以识别的内置函数名称
- [剑指offer][JAVA]面试题第[33]题[二叉搜索树的后序遍历][单调栈][递归分治]
- pict 手册_zbrush中文手册.pdf
- java画图颜色_手绘板,多种颜色选择。我抄的《疯狂java讲义》的,包我乱导的,但代码能用。...
- AWVS14.4.21安装时出现Internet server exception和扫描失败
- html表单左侧文字对齐,CSS图标文字对齐和表单输入框文字对齐兼容
- AI发来贺电,您的2333号奶牛已进入恋爱时节 | 野性的呼唤
- linux 文件安装大全,linux 文件包安装大全
- vue上线后,背景图片路径错误
- virtualhost配置
- python语言中、用来安装第三方库的命令_python安装第三方库的方法
- linux u识别,基于uCLinux的纸币识别器底层系统研究和实现
- 2022湖南最新消防设施操作员模拟试题题库及答案
- 当类型设置为Integer时,传入的值为0,会将其转化为空字符串,从而造成查询数据异常
热门文章
- jieba分词中cut和lcut的区别
- PRML是模式识别和机器学习领域的经典著作
- Arch Linux 指南——安装基本系统
- Go语言中的struct的初始化。
- oracle按照时间过滤
- 欺诈网站都注重用户体验!你,还在等什么?!
- WP8.1学习系列(第二十五章)——控件样式
- [转贴]超过80%的80后大学生不知道自己将来要干什么
- mysql多列索引不全用,MySQL多列索引的生效规则
- 如何下载python2.7.16_Python2.7.16安装(Win10)