SByte*/Byte* 和 SByte**/Byte** 转换说明
如果您对 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, ... );
页:
[1]