Кроссплатформенная Native C ++ DLL в Unity собирается, но не работает во время выполнения - PullRequest
0 голосов
/ 28 ноября 2018

В настоящее время я работаю над созданием собственной неуправляемой C ++ DLL для проекта Unity.DLL использует сокеты, и мне нужно, чтобы она была кроссплатформенной с Unix-системами.

Очевидно, что мне нужно использовать WinSock при работе на платформе Windows и POSIX при работе на чем-то вроде Linux.

Сборка Windows работает нормальноот единства без проблем.Я также могу построить для Linux, но я получаю ошибки во время выполнения, когда я на самом деле пытаюсь использовать приложение Linux.Я думаю , что это связано с тем, что DLL связана во время выполнения, а проверки перед процессором, которые я проводил для разных платформ в моем коде C ++, на самом деле не перекомпилируются.

Я знаючто DLL являются проприетарными для Windows, так что должно быть что-то происходящее, когда Unity может на самом деле построить с DLL на Linux, не так ли?Или это просто не дает мне ошибок компоновщика, потому что я компилирую в среде Windows, и он не знает ничего лучше?

Я думаю, что мне нужно собрать более одной DLL для моих разных целевых платформ.Затем проверьте, какой из них использовать в C # с некоторыми предварительными проверками.Моя проблема с этим заключается в том, что мой код станет немного беспорядочным, и я надеялся абстрагировать платформу, проверяющую содержимое, до C ++, чтобы другие могли легче использовать эту DLL.

Если у кого-то есть понимание направления движения вперед, это будет высоко ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...