Я вызываю функцию c dll в C#, которая возвращает 64-битный массив символов ASCII, поскольку C# использует UNICODE, как мне преобразовать массив символов ASCII в строку UNICODE?преобразовать массив символов ASCII в строку UNICODE
Я делал это раньше, имея строку в структуры, так как функция имела-структуру в качестве одного из своих аргументов следующим образом:
public struct example
{
public uint ID;
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 64)]
public string serialNumber;
}
Я не могу использовать структуру на этот раз, как эта новая функция имеет SERIALNUMBER как один из его аргументов. Я объявил serialNumber как строку, а затем, когда импортированная функция c вызвана сбоем программы, я считаю, что причиной этого является конфликт данных?
Извините, если этот вопрос немного запутан, пытаясь изо всех сил объяснить мою проблему, любая помощь будет оценена по достоинству.
Добавить 'System.Runtime.InteropServices.CharSet. Ansi' – ElderBug
, который вызывает ошибку, говорящую о том, что Ansi существует в типе System.Runtime.InteropServices.CharSet. извините, я новичок в программировании – john
Должен ли я добавлять это в начале? – john