我正在使用 PInvoke 调用 DLL。DLL 的函数在代码页 437 中返回一个 C 字符串。
有没有办法让 .Net 编组将字符串转换为 unicode,或者有人可以建议我应该给 DllImport() 和 MarshalAs() 提供哪些参数以及使用转换函数来获得 unicode 输出?
作为参考,这是我目前使用的 DllImport:
[DllImport("name.dll", CharSet=CharSet.Unicode) ]
internal static extern int GetSweepParam(
int param_num,
[Out,MarshalAs(UnmanagedType.LPStr)]StringBuilder param_name,
[Out,MarshalAs(UnmanagedType.LPStr)]StringBuilder param_units,
double[] values,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder error_string
);