Unity中的跨平台本机C ++ DLL构建但在运行时失败

时间:2018-11-28 14:55:02

标签: c# c++ unity3d dll

我目前正在为Unity项目创建本机,不受管理的C ++ DLL。 DLL使用套接字,并且我需要它与基于Unix的系统跨平台。

很明显,在Windows平台上,我需要使用WinSock,而在Linux等平台上,则需要使用POSIX套接字。

Windows构建可以从Unity正常运行,没有任何问题。我也可以 build 到Linux,但是当我实际尝试使用Linux应用程序时却遇到运行时错误。我认为这是因为DLL是在运行时链接的,并且我在C ++代码中针对不同平台进行的预处理程序检查实际上并未重新编译。

我知道DLL是Windows专有的,所以必须要有一些东西可以让Unity首先在DLL上实际构建到Linux,对吗?还是只是因为我在Windows环境中编译而没有给我链接器错误,而且它没有更好的选择?

我的想法是,我将需要为不同的目标平台构建多个DLL。然后,通过一些之前的检查,检查在C#中使用哪个。 我的问题是,这会使我的代码有些混乱,并且我希望将平台检查内容抽象为C ++,以便其他人可以更轻松地使用此DLL。

如果任何人对前进的方向有任何见识,将不胜感激!

0 个答案:

没有答案