开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 248|回复: 0

[源码] SByte*/Byte* 和 SByte**/Byte** 转换说明

[复制链接]

0

精华

0

贡献

101

赞扬

帖子
88
软币
196
在线时间
3 小时
注册时间
2019-7-7
发表于 2024-5-28 05:45:08 | 显示全部楼层 |阅读模式
如果您对 NativeAot 或 Gtk3/Gtk4 Wrapper 使用 AppWithPlugin 来处理所有内容,则说明委托函数指针 ( delegate* ) 的结构字符串不可用。



我看到 ClangSharpPInvokeGenerator 和类 UnmanagedCallerOnlyAttribute 存在问题,它们无法将结构字符串传递给 UnmanagementCallerOnly 的静态函数,或者您的应用程序尝试与加载共享库进行通信。



因为我有一个想法,所以我将 AppWithPlugin 写入 NativeAot,并且我希望 sbyte* 用于字符串,sbyte** 用于 string[] 在 C/C++ 中作为 const char* 和 char** 传递。
您可以在 https://github.com/DeafMan1983/AppWithPluginForNativeAot 查看我的存储库。


SDL2 包装器示例 (DeafMan1983.Interop.SDL2):

对于字符串到 sbyte*(来自字符串的 sbyte*):


sbyte* title = SBytePointerFromString("HelloSDL");

SDL_Window* window = SDL_CreateWindow(title, ... );

回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-6-26 16:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表