Я отредактировал встроенную функцию в заголовочном файле статической библиотеки, но внесенные изменения, похоже, не влияют на выполнение программы.
Моя цель
Я пытаюсь создать 2D-игру и использую Box2D в качестве физического движка. Я хочу настроить поведение распределения памяти Box2D в соответствии с тем, как моя игра управляет памятью. Я пытаюсь сделать это, используя предполагаемый метод Box2D 2.4, настраивая b2_user_settings.h.
b2_user_settings.h
Много аспекты поведения Box2D описаны в файле b2_settings.h. Сюда входят такие вещи, как длительность одной единицы расстояния в моделировании, функции распределения и освобождения памяти, а также регистрация коллизий. Функции записаны как встроенные функции в этом файле. Например, функция распределения памяти выглядит следующим образом:
Код: Выделить всё
/// Implement this function to use your own memory allocator.
inline void* b2Alloc(int32 size)
{
return b2Alloc_Default(size);
}
/// If you implement b2Alloc, you should also implement this function.
inline void b2Free(void* mem)
{
b2Free_Default(mem);
}
Моя реализация
Box2D
Я использую Box2D 2.4.2. В своем проекте я уже скомпилировал Box2D в статическую библиотеку. Затем я добавил свою версию b2_user_settings.h в каталог include, где расположены другие файлы заголовков Box2D.
Мой b2_user_settings.h РедактируетЯ переопределил код выделения и освобождения памяти Box2D, а также функцию регистрации:
Код: Выделить всё
/// Implement this function to use your own memory allocator.
inline void* b2Alloc(int32 size)
{
using namespace Game;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79127776/box2d-2-4-cant-override-default-behavior-with-user-settings-h[/url]