c# - 如何使用 Mono Project 将 C/C++ 指针传递和保存到 C#,并将它们返回
问题描述
我在弄清楚如何有效地将 C 指针传递和存储到 C#,然后在我需要 Mono 时将它们返回回来时遇到了一个严重的问题。我正在 C++ 之上使用 C# 构建脚本层。例如(伪代码):
C++:
GameObject* owner = new GameObject();
void* args[1] = {owner};
return_object = mono_runtime_invoke("InitReference", mono_object, args, &exception);
C#:(C# GameObject 类实例)
public IntPtr InitReference(IntPtr game_object_ptr)
{
return game_object_ptr;
}
我想要实现的是 C++ 对象实例和实际 C# 表示之间的关系。这方面的信息很少,我有点迷茫。
解决方案
经过一番尝试,我解决了我的问题:首先我将指针地址存储到一个字符缓冲区中,然后我将它作为一个整数数组 int [] 传递给单声道。这允许我的指针地址在 C# 环境中保持活动状态,并且我可以随时检索它。
推荐阅读
- python - 结构化的numpy ndarray,如何获取值
- python - 为什么这两个相同的列表表现不同?
- jquery - 在 ajax 生成的内容中加载 JS 文件
- perl - Perl 中的取消引用哈希在 Docker 容器中不起作用
- c# - .NET Core EF - 从自定义 DbCommand 获取日志记录输出
- c# - 如何解决以下代码中的错误?
- html - 使用 shiny::includeHTML() 时无法呈现 blogdown 站点
- mysql - 如何在 MySQL 中找到当时的最低值(圈记录)?
- python - 将输入从 React.js/Electron 应用程序传递到 Python 脚本?
- d3.js - Pixi.js vs Konva.js vs D3.js