У меня есть библиотека, которая возвращает CFString, и я пытаюсь получить это строковое значение в C # ..
Проблема в том, что я не знаю, как это сделать в C # ..
Заставить внешнюю функцию возвращать CFString не будет работать, так как она выдает исключение "Тип MonoMac.CoreFoundation.CFString, который передается в неуправляемый код, должен иметь атрибут StructLayout."
Тогда я подумал, что могу получить строку в виде байтового массива, а затем преобразовать ее в строку в C #, но затем у меня возникла другая проблема, я не знаю, как преобразовать в 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");
}
Если кто-нибудь знает способ сделать это, пожалуйста, помогите мне;)
Спасибо