我有一个返回 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");
}
如果有人知道这样做的方法,请帮助我;)
谢谢