Ощущение да жа вю. Смотришь в книгу, видишь фигу. Ну перечитай ещё раз то, что у меня написано.Сионист писал(а):А конструктор глобального объекта когда вызывается?
Инициализация - это и есть вызов конструктора, если что...Romeo писал(а):Глобальная переменная инициализируется до вызова main, а CoInitialize вызывается именно в main, то есть позже.
С тобой просто бесполезно спорить. Ты выбираешь фразу и придираешься к ней. А то, против чего тебе нечего сказать, ты просто игнорируешь. Что такое pre-get hook ты не понимаешь просто, да?Сионист писал(а):Вы ещё бейсик помяните.
Про dll вообще не понятно, зачем было сказано. А та оболочка, которую ты предлагаешь, среди программистов называется Proxy. Если бы GOF читал чуть дальше синглтона, то достаточно было бы сказать всего одно слово, чтобы тебя поняли. Вопрос, а зачем нужно городить Proxy, если достаточно просто отложить вызов? Да вы, батенька, простых путей не ищите, как я погляжу. А о принципе KISS не слышал? Специально расшифрую - Keep It Simple, Stupid - Сделай это проще, дурачок. Программа должна быть настолько простой, насколько это возможно. Хотя, я думаю, что придумывать изощрённые решения взамен простому и понятному механизму ты решил отнюдь не ради искусства. Всё куда проще. Ты упорно не хочешь признать, что приём годный лишь потому, что ляпнул сначала, что так делать нельзя, и теперь не можешь дать обратного хода. Скажу тебе честно, это плохая черта характера, как для программиста, так и для человека, в принципе.Сионист писал(а):Явное позднее связывание dll, поставляющей ресурсы, либо возврат оболочки над указателем с перегруженными операторами присваивания и привидения, что дополнительно гарантирует перехват каждого обращения на случай, если кому то придёт в голову к целевому объекту прикрутить ещё и деинит, а потом в одной части программы вызвать его, а в другой обратиться к самому объекту.