Сегодня я попытался заставить Edit & Continue работать в моем решении, которое выглядит следующим образом:
Game Engine .lib <- Game .lib <- Editor .exe </p>
<- Server .exe
<- Client .exe
Что хорошо работает.Но теперь я хотел превратить движок и игру .libs в .dll, чтобы я мог использовать функцию Edit & Continue в Visual Studio C ++.
Так что я получил кучу "__declspec (dllexport)" втам и т. д. работает просто отлично, работает!
Но в определенных ситуациях вылетает.На самом деле, это всегда происходит сбой в функции Lua, связанной с освобождением памяти.
Движок и игра работают с Lua, у них обоих есть свои статические функции интерфейса C ++.
Яне уверен, но я полагаю, что .dll немного похож на .exe без основной функции, и у каждого есть своя память.Поэтому, когда, например, Game.dll заставляет Lua выделить некоторую память, а Engine.dll заставляет Lua снова ее освободить, бум!Правильно?
Есть идеи, как это решить?Конечно, Engine.dll должен отвечать за Lua, но Game.dll должен иметь возможность расширять интерфейс новыми статическими функциями.
РЕДАКТИРОВАТЬ: больше не было сбоев после того, как я превратил сам Lua в .dll,Прежде чем я попробовал это, я также перекомпилировал статику с тем же компилятором, что и все другие проекты, и я дважды проверил библиотеки времени выполнения, и они все одинаковые, и я ссылаюсь на правильные библиотеки отладки / выпуска.Мне все еще интересно, что здесь происходит.
Хорошего дня,
Antoon
PS Почему у меня нет контроля над возвратами в Stackoverflow?