我在本机DLL中有一个函数,定义如下:
#includevoid SetPath(string path);
我试着将它放在微软的P/Invoke Interop助手中,但它在"字符串"类(我认为是来自MFC?)上窒息了.
我已经尝试将它编组为各种不同的类型(C#String,char [],byte []),但每次我得到一个NotSupportedException或一个Native Assembly Exception(取决于我试过的编组).
任何人都曾使用本机字符串类的Native/Managed Interop?有没有办法让这个元帅?我是否必须自己编写Marshaler?
看起来你正在尝试使用C++标准库字符串类.我怀疑元帅会很容易.最好坚持使用char*和Marshal作为StringBuilder.这就是我通常做的事情.您必须添加一个为您生成C++字符串的包装器.