Здравствуйте, Simbio, Вы писали:
S>Здравствуйте,моя прогрмма состоит из двух проектов — статической библиотеки (.lib) и графической части, котоорая связывается с этой библиотекой. S>В библиотеке есть код следующего вида:
S>Я ожидал, что будет создано по одному глобальному объекту каждого класса, но вместо этого создается только g_foo2Proxy. S>Программу компилирую в Visual C++ 7.1 с отключенной оптимизацией (Debug). Кроме определения, эти глобальные переменные нигде больше не используются, и служат для регистрации класса FooXProxy в DriverFactory.
S>Хотелось бы понять, почему так происходит, и более общий вопрос, когда и как создаются глобальные объекты в статических библиотеках?
К сожалению, способа автоматической объектов из .lib регистрации неизвестно.
Вызывай функцию-пустышку для какждого такого .cpp
Правильно работающая программа — просто частный случай Undefined Behavior