Динамически создать объект библиотеки DLL из Фабрики - C++
Привет 6 проектов, определенных в моей IDE.
- EventHelper
- ConfigParser
- OfficeEventHandler
- обмен сообщениями
- LoggingAndPersistence
- ScreenCamera
EventHelper имеет точку входа. Остальные проекты - это DLL, которая поглощается EventHelper.
Messaging и ConfigParser также используются во всех остальных DLL. Таким образом, код для загрузки DLL и доступа к нему является общим для всех модулей (Code Redundancy).
dllHandle_parser = ::LoadLibrary(TEXT("ConfigParser.dll"));
if (!dllHandle_parser){
return;
}
configParserClient_fctry = reinterpret_cast<configParser>(::GetProcAddress(dllHandle_parser, "getParserInstance"));
if (!configParserClient_fctry) {
::FreeLibrary(dllHandle_parser);
return;
}
parser = configParserClient_fctry();
И аналогичный код для обмена сообщениями
Мой вопрос: есть ли способ, где я могу иметь одну DLL с именем ObjectFactory, где я могу дать имя класса (во время выполнения, в строковом формате), который будет создан. Что-то вродеObjectFactory.getInstance("ConfigParser/Messaging")
, (Java как Class.forName("className")
)
Или, если это невозможно, какой будет предложенная архитектура?