gpt4 book ai didi

c# - 从 C# 应用程序使用 C++ 库时出现编码错误

转载 作者:行者123 更新时间:2023-11-28 01:08:36 24 4
gpt4 key购买 nike

我正在尝试在 C# 中使用 C++ DLL,并且在具有特定功能的两者之间存在一些问题。

在 C++ 中,函数定义为:

byte* GetEntityUserData(TEntity entity)

在 C# 中,我将其定义为:

[DllImport(EngineDll)]
public static extern object[] GetEntityUserData(TEntity entity);

当我尝试执行以下用法时:

object[] o = LE.GetEntityUserData(entity);

我收到以下错误:

Cannot marshal 'return value': Invalid managed/unmanaged type combination.

C# 程序编译通过,但出现运行时错误。

最佳答案

数据应该代表什么?我会更改 C# 签名以返回 byte[],而不是 object[]。您将无法从非托管函数中取回引用类型。只有值类型,这意味着原始类型和struct

关于c# - 从 C# 应用程序使用 C++ 库时出现编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com