gpt4 book ai didi

c# - Mono C# PInvoke - 从外部库获取 CFString

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:45 24 4
gpt4 key购买 nike

我有一个返回 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");
}

如果有人知道如何做到这一点,请帮助我;)

谢谢

最佳答案

尝试:

 [DllImport("lib")]
public static extern IntPtr test();

然后使用:

 new CFString (test ()).ToString ();

关于c# - Mono C# PInvoke - 从外部库获取 CFString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7027962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com