Почему элементы данных нельзя экспортировать в DLL?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему элементы данных нельзя экспортировать в DLL?

Сообщение Anonymous »

Насколько я понимаю, цель __declspec(dllexport) — это инструкция во время компиляции DLL для экспорта достаточного количества информации в LIB, которая идет вместе с DLL, чтобы разрешить конкретно методы-члены в DLL, которые будут вызываться в компоновщиках DLL по их расшифрованному имени. Если кто-то попытается вызвать метод-член, определенный как общедоступный в заголовке, включенном в DLL, но этот метод-член не экспортируется, то проект, который связывает DLL, сам потерпит неудачу по ссылке. стадии сборки из-за неразрешенных внешних символов.
Это все хорошо для методов-членов, но почему правила совершенно разные для членов данных? Объявлены члены данных как public в заголовке, включенном в DLL, к ним можно получить доступ по их неизмененному имени в проектах, которые связывают DLL, хотя, насколько я понимаю, имя элемента данных будет искажаться в процессе компиляции DLL. Я не совсем знаю определение символа, кроме «чего-то в исходном коде», так что это так же просто, как методы-члены являются символами, а члены данных нет символы, чтобы члены данных не не искажали свои имена по какой-либо причине?

Подробнее здесь: https://stackoverflow.com/questions/791 ... d-to-a-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»