У меня есть библиотека, которая возвращает CFString, и я пытаюсь получить это строковое значение на С#. Проблема в том, что я не знаю, как это сделать на С#..
Заставить внешнюю функцию возвращать CFString не получится, так как она генерирует исключение «Тип MonoMac.CoreFoundation.CFString, который передается неуправляемому коду, должен иметь атрибут StructLayout».
Затем я подумал, что могу получить строку в виде массива байтов, а затем преобразовать ее в строку на С#, но у меня другая проблема, я не знаю, как преобразовать в C CFString в массив байтов:/
C# Dll Import stuff
[DllImport("lib")]
public static extern MonoMac.CoreFoundation.CFString test();
[DllImport("lib")]
public static extern byte[] test();
C Library sample
CFStringRef test()
{
return CFSTR("test string");
}
Если кто-нибудь знает, как это сделать, пожалуйста, помогите мне;)
Спасибо