P / Invoke指向char数组的指针

时间:2009-11-19 23:10:47

标签: pinvoke

我有一个我需要P / Invoke以下方法的DLL: DWORD Foo(         int a,         int * b,         char * c     );

根据文档,参数'c'是一个out参数,必须是大小为16的char数组。将以空终止的字符串放入其中。

参数'c'的P / Invoke定义是什么(我有其他人好)?如何在通话后读取'c'的内容?

1 个答案:

答案 0 :(得分:1)

我更喜欢将StringBuilder用于这些事情。它比char数组或不可变字符串更容易处理。只需确保使用足够的容量(在这种情况下为16)初始化它以填充DLL。通常情况下它会很好地编组,但您可能必须在DLLImport声明中设置字符集。

以下是关于此的更多信息: Marshaling between Managed and Unmanaged Code from MSDN magazine (Stringbuilder section)