Путем выбора 'Библиотеки классов' Вы случайно говорили этому делать.Net Library с помощью CLI (управляемый) extenstion C++.
Вместо этого создайте проект Win32, и в Параметрах настройки приложения на следующей странице, выберите 'DLL'.
можно также сделать DLL MFC или DLL ATL от того выбора библиотеки, если Вы хотите пойти тем путем, но он кажется, что Вы не делаете.
Как говорили другие, это зависит от компилятора, а не о чем-то, о чем вам действительно нужно думать при повседневном использовании C ++. Однако, если вам просто интересно узнать о проблеме, вам следует прочитать книгу Стэна Липпмана Внутри объектной модели C ++ .
макет таблицы в память полностью зависит от компилятора; не существует «правильного» или универсального подхода.
Из википедии :
Стандарты C ++ не требуют как именно должна быть динамическая отправка реализовано
Итак, ответ отрицательный. Макет vtable определяется реализацией.
Для очень подробного описания структуры классов Open Watcom см. Примечания Схема классов
Как уже писали другие, общего подхода не существует. (Черт возьми, никто даже не требует, чтобы виртуальные таблицы использовались вообще.)
Однако я считаю, что они, скорее всего, реализованы как скрытый указатель с определенным смещением в объекте, который ссылается на таблицу функций указатели. Адреса некоторых виртуальных функций занимают определенные смещения в этой таблице. Обычно существует также указатель на объект std :: type_info
динамического типа.
Если вас интересуют подобные вещи, прочтите Липпманн «Внутри объектной модели C ++» . Однако, если ваш интерес не академический (или вы пытаетесь написать компилятор C ++ - но тогда вам не нужно спрашивать), вам не стоит беспокоиться. Это деталь реализации, которую вы не делаете не нужно знать и никогда не следует полагаться.