c# - 嵌入式单声道 : Creating/marshaling a C# struct in C++

标签 c# c++ mono mono-embedding

我正在开发一个嵌入 Mono 的应用程序,我有一个简单的 C# 结构,它是我的一个函数的参数之一。

如何创建该结构并将其从 C++ 传递到 C#?

如果我有这样的 C# 结构:

 struct CSStruct
 {
     int mInt;
     float mFloat;
 }

我可以创建一个严格的 C++ 版本并将其传递给 mono 吗?

struct CStruct
{
    int mInt;
    float mFloat;
}

// ...
CStruct var = { 10, 30.0f };
void* args[1] = { &var };
mono_runtime_invoke(method, NULL, args, NULL);

最佳答案

是的,这就是它应该工作的方式:值类型在参数数组中传递 在 mono_runtime_invoke() 中通过取指向值类型数据的指针。

关于c# - 嵌入式单声道 : Creating/marshaling a C# struct in C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8373253/

相关文章:

c# - ProjectionTo 返回 ArgumentException : Argument types do not match

c# - 如何使用 C# 泛型重写这两个几乎相同的函数?

c++ - ZeroMQ 链接器错误 C++

c++ - 为什么将 set::iterator 而不是 const_iterator 传递给函数会违反单一定义规则?

macos - Mono、F# 库无法在 Mac OSX 下工作

android - 您可以在 Android 上运行 XNA 游戏吗?

c# - 如何在PartitionKey中使用单引号查询Azure表存储

c# - 如何绕过 C# (Winforms) 中缺少布局和 JPanel

C++ (LINUX) 使用 DevIL 设置 X11 窗口背景

mono - 从 Xamarin Mono for Android 项目引用 PCL(可移植类库)