当前位置:  开发笔记 > 编程语言 > 正文

C#P/Invoke中的Marshal C++"string"类

如何解决《C#P/Invoke中的MarshalC++"string"类》经验,为你挑选了1个好方法。

我在本机DLL中有一个函数,定义如下:

#include 
void SetPath(string path);

我试着将它放在微软的P/Invoke Interop助手中,但它在"字符串"类(我认为是来自MFC?)上窒息了.

我已经尝试将它编组为各种不同的类型(C#String,char [],byte []),但每次我得到一个NotSupportedException或一个Native Assembly Exception(取决于我试过的编组).

任何人都曾使用本机字符串类的Native/Managed Interop?有没有办法让这个元帅?我是否必须自己编写Marshaler?



1> Andrew Queis..:

看起来你正在尝试使用C++标准库字符串类.我怀疑元帅会很容易.最好坚持使用char*和Marshal作为StringBuilder.这就是我通常做的事情.您必须添加一个为您生成C++字符串的包装器.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有