![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++/cli
xinyue_htx
自建博客https://xinyuehtx.github.io/
展开
-
C++/CLI的Ref和Out使用
最近在搞C++/CLI,发现经常需要涉及Ref和Out的使用,因此记录下。C++/CLI 是一种.NET语言,因此其可以像C#一样使用Ref和Out为函数参数进行标识。首先我们看看Ref,这个是表示对对象的地址进行传递,所以很简单传递一个地址符号即可我们将这个方法引用到一个C#项目中,可以看到vs帮我们加上了ref关键字首先我们需要知道的是,CLR层面是没有out这个用法的,他的本质...原创 2020-02-23 14:22:11 · 1809 阅读 · 0 评论 -
C++/CLI的托管字符串std字符串和c字符串的转换
最近在搞C++/CLI,发现经常需要涉及字符串之间的传递和转换,因此记录下。在C++/CLI中,我们可以接触到三种字符串std::string,System::string,cstring。这里我们分别称之为标准字符串,托管字符串和c语言字符串。std::string 和 cstringcstring是一个char数组,在string.h 中直接定义了c_str方法完成std::strin...原创 2020-02-23 14:20:04 · 799 阅读 · 1 评论 -
C++/CLI的设置CLR枚举
最近在搞C++/CLI,发现我在其中写的enum居然不见了,这个是怎么回事呢。首先我们在C++/CLI项目里面建立一个enum当我们将其在c#项目中引用时,神奇的事情发生了,这个枚举的枚举值不见了。现在我们试着给枚举值做一点改变,加一个class枚举又正常了。实际上在C++/CLI中我们可以定义两种枚举类型,不加class关键字的是标准C++枚举,加class关键字的是托管枚举...原创 2020-02-23 14:17:30 · 778 阅读 · 1 评论 -
C++/CLI委托回调
我们都习惯了在c#中使用事件,但是c++中没有默认的事件机制,所以在编写c++/cli时,这将是一个令人困扰的问题在c++中常见的方式是传入一个回调,在特定的时机,通过调用回调函数,执行上层的代码。这种方式能够解决一部分场景的问题,但是另外一些场景,比如事件的invok列表,责任链模式都不能实现。另外常见的回调对象,要求一次实现多个回调函数,这样容易将各个业务的处理都聚集在同一个回调对象中...原创 2020-02-21 10:06:41 · 1091 阅读 · 0 评论 -
C++/CLI处理CLR兼容——如何创建无参数List
作为一名.Net开发,如果有一天编译器突然告诉你,你必须要为每一个list的构造函数传入参数,不能使用foreach处理数列。你会不会抓狂?来分享下我踩到的坑然而c++/cli是.NET兼容语言,语法自然是支持list或者foreach的使用的。所以事实上这里的语法完全没有任何问题,而且是可以通过编译的,就如同下图。那么是什么造成这些错误提示了呢?既然语法没有问题,那么原因就可能集...原创 2020-02-21 10:03:53 · 1386 阅读 · 0 评论