将标准C ++字符串编组到C#字符串时出现问题

时间:2011-09-22 13:46:56

标签: c# .net c++ interop dllimport

2 个答案:

答案 0 :(得分:0)

假设这些参数是从应用程序中提供给您的,为什么不简单地使用:

[DllImport(aDll.dll, CallingConvention = CallingConvention.Cdecl, 
    CharSet = CharSet.Auto)]
static unsafe extern uint aMethod(out string firstParameter, 
    out string secondParameter);

如果你想让它们双向进行,你可以使用预分配大小的ref StringBuilder(如果C函数希望你管理自己的内存,你也应该使用它 - 你没有说)。

答案 1 :(得分:0)

尝试将CharSet更改为CharSet = CharSet.Ansi