Пишу dll на C++. Можно ли помещать в ней функцию в namespace? Если да, то какой в этом профит, кроме решения проблемы неуникальности имен и как вызывать такую функцию из exe, если пользоваться GetProcessAddress? Если нет, то почему нельзя namespace-ом отделять такие блоки в dll?
Можно помещать. Да, для решения вопроса с неуникальностью имен. Для того namepace и предназначены, независимо от того, в DLL они использованы или нет.
Если вы хотите пользоваться именно GetProcAddress (а не dllimport), то смотрите глазами после компиляции DLL, под каким именем и индексом экспортировалась функция.
Есть возможность "облагородить" экспортируемые имена через опции линкера, в т.ч. прямо в коде через
#pragma comment(linker, "/EXPORT:MyName=_MangledName@@#123#@@")
но для этого все равно надо знать "зашифрованное" имя. Ну и, понятное дело, в таком случае вопрос уникальности экспортируемых имен снова становится вашей ответственностью.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники