Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我如何使用单个代码库来实现Unreal和Unity 3D?_C++_Unity3d_Unreal Engine4 - Fatal编程技术网

C++ 我如何使用单个代码库来实现Unreal和Unity 3D?

C++ 我如何使用单个代码库来实现Unreal和Unity 3D?,c++,unity3d,unreal-engine4,C++,Unity3d,Unreal Engine4,我有一个代码库,并计划(最终)将其作为Unity3D商店上的游戏模板提供给第三方。核心代码是用C语言编写的,带有一些nUnit和集成测试,同样是用C语言编写的 到目前为止,一切顺利。听起来没那么糟糕,但是 想一想,我想制作一个类似的游戏模板,它是用C++来实现的。我不希望在C和C++中保持两个代码基,这是愚蠢的(并且是Distar的一个配方)。 相反,我想把所有的业务逻辑合并到C++或C语言中的一个库中。我实际上并不在乎哪一个,但我正朝着C++的方向摇摆,它具有跨平台的特性。我不害怕把我的C代码

我有一个代码库,并计划(最终)将其作为Unity3D商店上的游戏模板提供给第三方。核心代码是用C语言编写的,带有一些nUnit和集成测试,同样是用C语言编写的

到目前为止,一切顺利。听起来没那么糟糕,但是

<>想一想,我想制作一个类似的游戏模板,它是用C++来实现的。我不希望在C和C++中保持两个代码基,这是愚蠢的(并且是Distar的一个配方)。

相反,我想把所有的业务逻辑合并到C++或C语言中的一个库中。我实际上并不在乎哪一个,但我正朝着C++的方向摇摆,它具有跨平台的特性。我不害怕把我的C代码重新编译成C++,因为它完全是模块化的,而且测试良好。


假设我采用C++路由,我如何处理C++接口上的接口(C++中的抽象类)?P>我不认为为C++做DLL是有效的。你可以为C做DLL,不能保证不同C++接口之间的二进制兼容性。如果你想把类发布为接口,那么你可能会遇到很多问题。对于类的填充方式没有任何约定(至少没有广泛接受的跨平台约定)。您可以使逻辑接口纯粹是程序化的,这样就可以创建一个库,其中包含稍后可以从托管C#代码调用的函数。我想这不会有什么好处,因为开销太高,整个过程都不合理。因为Unity和UE没有任何共同点,所以维护两个独立的项目会容易得多。此外,当你对你的代码库实现逻辑时,它就很难创建C++的C++/C++等价物。你可以为C做DLL,不能保证不同C++接口之间的二进制兼容性。如果你想把类发布为接口,那么你可能会遇到很多问题。对于类的填充方式没有任何约定(至少没有广泛接受的跨平台约定)。您可以使逻辑接口纯粹是程序化的,这样就可以创建一个库,其中包含稍后可以从托管C#代码调用的函数。我想这不会有什么好处,因为开销太高,整个过程都不合理。因为Unity和UE没有任何共同点,所以维护两个独立的项目会容易得多。此外,当你对你的代码库实现逻辑时,创建C/C++等价物就显得微不足道了。