Подход № 1 (самый сложный):
Разработайте систему плагинов, состоящую из нескольких динамически связанных библиотек (* .dll в win, * .so в linux), с несколькими общедоступными функциями, которые сообщат вашему приложению о том, что этот плагин поддерживает, имена функций и указатели. Сканирование плагинов при запуске, создание списка функций, которые будут сопоставлять имена функций с их указателями.
Ожидаются проблемы с переменным количеством параметров.
Подход № 2 (перебор):
Храните все функции, которые вы должны вызывать, в одной динамически связанной библиотеке.
Когда имя функции извлекается из базы данных, получите указатель на функцию, используя GetProcAddress (win32) или dlsym (?) В Linux.
Ожидаются проблемы с переменным количеством параметров. Не самый быстрый и не самый умный способ.
Подход № 3 (наиболее гибкий):
Добавьте переводчик lua или python в ваше приложение.
Таким образом, вы сможете хранить целые функции в базе данных, и у вас не должно возникнуть проблем с вызовом одной из них. Вам все равно придется объявить список функций, к которым вы хотите получить доступ.
Это не будет доказательством дурака / взлома, однако можно будет испортить все приложение из базы данных, если вы не будете достаточно осторожны.