![]() |
1
1
不能,您不知道非托管代码使用了什么分配器来创建cstring实例。而且,你必须调用cstring析构函数,你不能得到它的地址。 如果这个cSnpe对象作为C++函数的函数返回值返回,那么您就死在水中了。你的问题不清楚。你会有无法控制的内存泄漏。需要用C++/CLI编写的包装器来解决这个问题。作为函数返回值返回的字符串必须由cotaskmemalloc()分配,才能由p/invoke封送拆收器正确清理。没有C++代码可以做到这一点。 |
![]() |
2
1
非托管代码分配的非托管内存只能由非托管代码释放。因此,您需要添加另一个非托管函数,该函数将获取指向已分配字符串的指针并释放内存。在处理完字符串之后,应该从托管代码调用此函数。 例子:
|
![]() |
TheKing · 为什么数组的地址可以有负值? 3 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 7 年前 |
![]() |
Jaques · “.exe”已触发断点 7 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |