rttrorg / rttr

C++ Reflection Library
https://www.rttr.org
MIT License
3.11k stars 429 forks source link

Crash when trying to load library. #348

Open rogerbusquets97 opened 1 year ago

rogerbusquets97 commented 1 year ago

I'm trying to load a dll that is registering types to rttr. But the application crashes when callling library.Load(). Apparently the issue is triggered here: array_range<type> type::get_types() RTTR_NOEXCEPT { auto& type_list = detail::type_register_private::get_instance().get_type_storage(); return array_range<type>(&type_list[1], type_list.size() - 1); } type_list has only 1 element, so it is out of bounds when accessing like type_list[1] i guess. Maybe I am doing something wrong. I've been following the documentation though. My dll has in a cpp file the following: `#include "components.h"

include <rttr/registration>

using namespace rttr;

RTTR_PLUGINREGISTRATION { rttr::registration::class("test") .constructor<>() .property("i", &test::i);

rttr::registration::class_<test2>("test2")
.constructor<>()
.property("d", &test2::d);

} And my application is trying to load it like this: library lib("game_gameplay"); // file suffix is not needed, will be automatically appended lib.load();`

It crashes after calling load. AFAIK it is everything needed according to the documentation. Am I missing something. dll is properly created. And I've been able to load it and get func ptr using windows API. But I'd like to use rttr method.

tommybowles commented 9 months ago

did you ever solve this? seeing the same thing