Цитата Сообщение от icebear
Т.е. CLSID - это часть доки по винапи?
Это "закулисный механизм", который из клиентского кода не виден.
Сигнатура так и работает.
Цитата Сообщение от icebear
Ты писал на С? На разных компиляторах? Если писал, то знаешь, что разные компиляторы по-разному ведут себе с неиницализироваными переменными. Ничем не отличается от твоего примера. К чему я это сказал? К тому, что с этой проблемой не стоит заморачиваться.
На Ц можно поставить "хороший стиль".
А в ассемблере до сих пор иногда случается проблема.
Цитата Сообщение от Vitamin
Все так, но ты сам себе противоречишь. Невозможно добавлять новые виджеты (сиречь расширять функционал) уже готовой программы! Она использует только те понятия (библиотеки), о которых знает на момент компиляции. Так что расширение функционала готовых программ прямо так в лоб невозможно.
Модули, расширяющие функционал - это плагины.

Чтобы программа могла пользоваться функционалом плагинов, где-то должен быть список плагинов.

Чтобы плагины можно было добавлять во время работы, нужно чтобы в этот список можно было добавлять элементы.

Где может располагаться этот список? Есть два основных способа:

1. В программе. Программа сама делает LoadLibrary и сама добавляет элемент себе в список.

2. В общеизвестном месте. Пользователь составляет нужный список и размещает в этом месте. Общеизвестное место загружает эти модули при запуске программы. Программа использует уже готовый список и не напрягается на LoadLibrary.

Что это за общеизвестное место? Это просто модуль. Точнее, список плагинов хранится не в модуле, а на диске. То есть сохраняется между выключениями машины. А модуль это просто интерфейс к этому дисковому хранилищу.

Более того, для каждой программы можно будет настраивать список плагинов, автоматически загружаемый при её запуске.

И название этому дисковому хранилищу - реестр.