我需要将结构从 C# 托管代码发送到 C 库。C 库将填充结构中的值。我一直在尝试将结构作为参考传递,以便 C# 代码将获取更新的数据值。
这是 libshlib.so 中的示例 C 函数:
void sharedStruct(struct data* d)
{
d->number = calcSomething();
d->message = doSomething();
}
我可以发送单个参数(int 和 StringBuilder),然后库代码运行并将新值返回给调用它的 C# 代码。
但是如何在 C# 中创建一个包含 int 和 string 的结构并将其发送到非托管代码(C 库),该代码将填充要在 C# 代码中使用的值?
C 结构可能是这样的:
struct data
{
int number;
char* message;
};
现在,我正在尝试建立在 C 库中操作数据以在 C# 中使用的最佳方法。我正在编写两段代码,所以我很灵活,但现在我无法让它工作。