我有一个返回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/

10-10 09:55