У меня есть приложение на C #, использующее C ++ DLL.Это работало нормально, но теперь мне нужно изменить «Обрабатывать wchar_t как встроенный тип» с «Да (/ Zc: wchar_t)» на «Нет (/ Zc: wchar_t-)», и мое приложение на C # стало очень нестабильным.Уровень взаимодействия между C ++ и C # включает некоторые строки в качестве параметров функции и в таких структурах, как это:
C ++:
typedef struct
{
// Used to be: WCHAR wstrName[256];
wchar_t wstrName[256];
} sdevicemodel_t;
C #:
namespace Thingy
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DeviceModel
{
// info
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string Name;
}
}
Нужно ли мнеизменить это объявление, чтобы оно соответствовало изменению в C ++, или это нормально, и моя проблема в другом месте?
Спасибо за любую помощь.