在Unreal Engine C++中使用C#库

3

你好,我希望在虚幻引擎中的C++应用程序中使用C#库。 有没有简单的方法使用C++包装C#库?

我已经查找了如何包装C#库,但似乎只有一些关于如何在C#中使用C++库的帖子。

非常感谢您的帮助,谢谢。


您需要嵌入一个运行时,很可能是Mono:这并不容易,并且需要大量的工作。 - UnholySheep
虽然这并不完全回答你的问题,但这就是为什么有C++/CLI的部分原因。你可以使用它来重新编写/封装。 - Zer0
1个回答

2
C#允许您执行与c++和c库的互操作调用。虽然不是公开的,但您可以操纵程序集以强制反向操作(这是通过ildasm完成的,但这是一个技巧,我不会详细介绍)。
要实现您的要求,您需要手动填写从c++主机到c#库的间隙。一种方法是在MC++(即带有托管clr的c++)中创建一个新的程序集。这个桥接程序集将公开API,以便您的c++语言使用,同时它可以访问您的c#库以重用逻辑。
这不是一个小任务,因为您需要手动编排数据结构,因为您正在“违反设计用例”。
在我看来,嵌入运行时将具有相同的努力。无论如何,您应该小心,因为您的虚幻引擎资源密集,性能可能会受到敏感打击。此外,c#部分具有不同的内存管理系统,当受到虚幻引擎的压力时,可能不是最优的。

谢谢您的回复,我想我可能会在外部库上运行C#库,并使用套接字将数据传递到虚幻引擎中,因为我太没有经验去尝试其他任何东西了。 - adam egan
不客气!这是一种方式,没有“正确”的方法来做到这一点,因为它取决于您拥有的所有要求和限制。 - Yennefer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接