Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, fkRTTI, Вы писали:
RTT>>Тоже сделал это, только перенес полностью свой проект туда, unresolved vftable исчезло. Зато появилось вот что:
PD>__try — __except.
PD>http://wasm.ru/print.php?article=Win32SEHPietrek2
RTT>>Я конечно понимал что отказ от CRT ведет за собой долгие танцы с бубном, но не на столько же)
PD>И не уверен, что это все.
убрал __try-__except 0 errors/0 warings, спасиб всем.
Здравствуйте, <Аноним>, Вы писали:
А>Добрый день, заказчик требует минимизировать размер исполняемого модуля, однако в проекте обширно используются виртуальные функции, во многих классах (и как следствие виртуальные деструкторы). При их использовании необходимо чтобы был включен Runtime type info и создавалась таблица type_info::vftable. Однако при отказе от CRT таблица не создается.
type_info не нужно для работы виртуальных функций. Однако, оно нужно не только для RTTI (dynamic_cast и typeid), но и для поддержки C++ исключений. Проверь ключи /EH
А>Вопрос: существуют ли реализации небольших CRT типа libctiny, wcrt и тп с поддержкой виртуальных функций?
Такой С
++ runtime есть
здесь, но он нужен для других случаев — поддержки С++ исключений, RTII, конструирования стических объектов (включая std::cout & Co).
А> Какие способы решения проблемы вы видите?
Необходимо добавить определение, которое должно соотвествовать внутреннему типу MSVC
_TypeDescriptor
class type_info
{
public:
virtual ~type_info();
private:
mutable void* data;
};
static_assert(sizeof _TypeDescriptor == sizeof type_info, "broken type");
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском