Предположим у меня есть длл с реализацией некого класса. Хочется подгрузить
её и использовать объект, ею реализуемый. Ну в общем плагин (может быть написан
сторонним разработчиком на неизвестно каком компиляторе).
Правильно ли я представляю себе все возможные грабли ? :
1. создать объект в основном коде обычным способом не удастся, потому как
декорирование имён может различаться и строчка A *a = new A(); просто не
слинкуется из-за неизвестно как задекорированного имени конструктора. Поэтому
придётся пользоваться фабричной export C функцией, реализованной в длл.
2. длл будет (всегда?) использовать встроенную в неё реализацию new и размещение
объекта в памяти будет как хотел компилятор длл-ки.
3. мое обращение к этому объекту будет в соответствии с реализацией моего компилятора
и может случиться цирк, если какой-нить член будет принят за указатель на VTBL).
Получается, что если хочется полной независимости от компиляторов, то плагин придется
делать только на export C функциях ?