c++传递字符串给c#使用问题

C++里,字符串要占用内存的。C++创建字符串,并传给C#,就会造成内存泄露(因为C#不知道C++如何创建,也就不知道如何销毁)。
因此,通常的做法(甚至是C++互相调用的惯例),是

  1. 调用者(这里是C#)准备好一段内存缓冲区(这里是StringBuilder);
  2. 被调用者C++把字符串内容,填充到指定缓冲区去;
  3. 调用者从缓冲区能得到结果,也知道如何清理缓冲(C#自己会用垃圾回收),没有内存泄露问题。
-------------本文结束感谢您的阅读-------------
最近的文章

iOS runtime 相关实例

避免按钮快速点击多次相应问题 创建UIButton 分类 123456789101112//// UIButton+time.h//#import <UIKit/UIKit.h>@interface UIButt …

继续阅读
更早的文章

iOS和Unity交互之参数传递

1. 调用方法一 Unity调方法传参,有返回值1234// Unity代码[DllImport("__Internal")]// 给iOS传string参数,有返回值,返回值通过iOS的return方法返回给Unityprivate s …

继续阅读