Я вызываю DLL с помощью PInvoke. Функция DLL возвращает строку C в кодовой странице 437.
Есть ли способ, чтобы маршалинг .Net преобразовывал строку в юникод, или может кто-нибудь предложить, какие параметры я должен указать для DllImport() и MarshalAs() и использовать функцию преобразования для получения вывода в юникоде?
Для справки, это 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
);