我正在使用PInvoke调用一个DLL。该DLL的函数以代码页437返回C字符串。
是否有一种方法可以让.Net marshaling将字符串转换为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
);