
C++/CLI
文章平均质量分 53
polinzhuo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++/CLI前途如何?
C++/CLI在05年就出现了,那时的语法还没有现在那么优雅,随着2年多的完善,C++/CLI也慢慢成熟。MS也在大力推广C++/CLI,但是作为程序员,应不应该在第一时间接受这一门新语言?很少有人说得清。也许很多人一开始有接触C++/CLI的冲动,是因为MS和Clippman的大名 。天知道新语言会不会经受住时间的考验?不管怎样,.NET平台的潮流也让整个公司与时俱进,公司的决策是想在下一代原创 2007-03-01 11:27:00 · 3021 阅读 · 1 评论 -
在托管代码中释放托管和非托管资源
IDispose Finalizer原创 2007-03-26 13:35:00 · 2667 阅读 · 2 评论 -
使用指针指向托管内存,和使用句柄指向本地内存
在编写托管代码的过程中,往往需要利用非托管内存的简单分配删除的特性,例如想生成一个大对象,使用之后想马上释放,就很适合在非托管内存中建立这个大对象。建立后,在托管代码中,需要一个句柄能指向这个大对象的内存,如下图所示。 这个过程可以使用Marshal类的AllocHGlobal方法,这个方法使用 GlobalAlloc 从进程的非托管内存中分配内存,并操作非托原创 2007-03-26 13:32:00 · 2506 阅读 · 0 评论 -
在C#中调用托管和非托管代码的问题
C#中使用非托管指针* 值针可以在带有unsafe的函数中正常使用。必须在函数前,static关键字后加入unsafe关键字。如static unsafe void Main(string[] args){}在项目属性中,选中Allow unsafe code复选框。C#中使用托管跟踪句柄^ 跟踪句柄可以直接赋值到C#对象中。原创 2007-03-12 09:50:00 · 2546 阅读 · 0 评论 -
C++/CLI的值类型
C++/CLI的值类型有很多限制:1 值类型提供了默认的无参数构造函数,在其中所有值类型中的成员变量都自动初始化,如果是值类型成员变量,初始化为0;如果是指针型变量,初始化为空。不允许用户覆盖默认的无参构造函数。2 不允许提供拷贝构造函数。3 不允许覆盖赋值操作符。 >p374 因此值类型只适用于简单的变量封装,如果涉及复杂的操作符重载,变量初始化,及复原创 2007-03-12 09:51:00 · 1478 阅读 · 0 评论 -
托管代码中的指针
interior_ptr是native pointer的超集,native pointer能做的,Interior pointer也一样能做。当垃圾回收器移动对象时,Interior pointer能随之移动,并始终指向该对象。------《Pro Visual C++_CLI and the .NET 2.0 Platform》p815 Interior_ptr可以指向原创 2007-03-12 17:00:00 · 7253 阅读 · 0 评论 -
非托管类,值类,引用类的相互调用
在.NET平台下开发,unsafe代码依然很重要,因为现有的很多代码都是iso-c++的,涉及到很多指针操作和运算。如果将其都转化为托管代码,工作量非常大。因此在托管代码中使用unsafe类型是非常重要的手段。本文在《Pro Visual C++ CLI and the dot.NET 2.0 Platform》的基础上,针对非托管类、值类和引用类的相互调用问题进行了总结。class原创 2007-03-12 12:39:00 · 3644 阅读 · 0 评论 -
CLR的终结操作Finalizer
终结操作的步骤:.NET2.0中CLR的 终结操作Finalizer非常有用,可以确保托管对象在释放内存的同时不会泄漏本地资源。以下是《框架设计(第2版):CLR Via C# 》相关章节的总结,图取自该书。1在一个对象被new之前,如果该对象的类定义了Finalizer方法,则该对象的一个指针被放到终结链表中。2在回收器开始工作时,遍历堆中不可达对象,将其视为可回收的原创 2007-03-07 13:06:00 · 1423 阅读 · 0 评论 -
C++/CLI的函数覆盖
隐式覆盖指iso-c++的函数覆盖,不同的是必须在子类覆盖函数最后加上关键字override如:virtual void Speak() override...{} 隐藏覆盖表示子类与父类同名的函数不再覆盖相应父类函数,而是新建这个函数。即与父类没有多态关系。ref class ParentClass...{ virtual void Print();}ref clas原创 2007-03-07 12:52:00 · 1500 阅读 · 0 评论 -
C++/CLI C#调用dll速度比较和内存分配时间测试
ref class in dll value class in dll原创 2007-03-02 14:03:00 · 5248 阅读 · 1 评论 -
C++/CLI中的引用类型
ref class R{private: int x;public: R(int xx): x(xx) {}};R^ o = gcnew R(3); //在托管堆R os(3); //也在托管堆o 和 os 之间的区别在它们的生存期上,或者说得更加具体一些,是对它们生存期的控制力。 如果编写的是托管代码,你可能不会介意放弃对内存的控制权,反而愿意信任运行库和垃圾回收器为你管理内存原创 2007-03-01 12:50:00 · 3153 阅读 · 0 评论 -
NET2.0的配置文件
很长时间没写blog了,这两天在看配置文件。NET2.0的配置文件很方便,无论做什么程序都会用到。但领导要求在dll中使用配置文件,我闲来无事想在项目开始之前做一些试验。发现如果在dll中使用默认的exe.config文件,在调用dll的客户端会带来冲突。就是客户端无法分辨哪个是dll的配置文件,哪个是应用的配置文件。结果是dll在应用的配置文件中完成查询、添加配置的操作。我翻看了msdn,才发现原创 2007-04-27 11:43:00 · 2785 阅读 · 0 评论