В настоящее время я работаю над созданием собственной неуправляемой C ++ DLL для проекта Unity.DLL использует сокеты, и мне нужно, чтобы она была кроссплатформенной с Unix-системами.
Очевидно, что мне нужно использовать WinSock при работе на платформе Windows и POSIX при работе на чем-то вроде Linux.
Сборка Windows работает нормальноот единства без проблем.Я также могу построить для Linux, но я получаю ошибки во время выполнения, когда я на самом деле пытаюсь использовать приложение Linux.Я думаю , что это связано с тем, что DLL связана во время выполнения, а проверки перед процессором, которые я проводил для разных платформ в моем коде C ++, на самом деле не перекомпилируются.
Я знаючто DLL являются проприетарными для Windows, так что должно быть что-то происходящее, когда Unity может на самом деле построить с DLL на Linux, не так ли?Или это просто не дает мне ошибок компоновщика, потому что я компилирую в среде Windows, и он не знает ничего лучше?
Я думаю, что мне нужно собрать более одной DLL для моих разных целевых платформ.Затем проверьте, какой из них использовать в C # с некоторыми предварительными проверками.Моя проблема с этим заключается в том, что мой код станет немного беспорядочным, и я надеялся абстрагировать платформу, проверяющую содержимое, до C ++, чтобы другие могли легче использовать эту DLL.
Если у кого-то есть понимание направления движения вперед, это будет высоко ценится!