我有一个返回CFString的库,我正试图用C#获取该字符串的值。。
问题是我不知道怎么用C#。。
使外部函数返回CFString将不起作用,因为它抛出异常“Type monmac.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");
}
如果有人知道怎么做,请帮助我;)
谢谢
最佳答案
我想你的答案可能在这篇文章的两个地方之一:
http://msdn.microsoft.com/en-us/magazine/cc164123.aspx#S9
http://msdn.microsoft.com/en-us/magazine/cc164123.aspx#S3
关于c# - Mono C#PInvoke-从外部库获取CFString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7027962/