Как заблокировать экспорт функции в MS VS C ++? - PullRequest
1 голос
/ 16 ноября 2011

Итак, ради аргумента, у меня есть модуль под названием ExportedFunctions.cpp с парой функций, украшенных DLL_EXPORT (см. Ниже)

#define DLL_EXPORT __declspec(dllexport)

ExportedFuncitons.cpp включает в себя LibraryFunctions.h. Функции, объявленные в этом заголовке, реализованы в LibraryFunctions.lib и статически связаны с моим проектом.

Проблема заключается в том, что когда я компилирую свою DLL и смотрю на нее с помощью средства обхода зависимостей (зависимость.exe), я вижу не только функции, экспортируемые ExportedFunctions.cpp, но также все функции в LibraryFunctions.h.

Это так, даже если я удалю некоторые объявления функций из LibraryFunctions.h. Они продолжают отображаться как точки входа DLL. Я хочу скрыть их.

1 Ответ

0 голосов
/ 16 ноября 2011

Разобрался.

Проблема в том, что файл lib экспортирует функции. Похоже, что он экспортирует независимо от того, что говорит .h файл.

К счастью, я также владелец LibraryFunctions, поэтому я перекомпилировал его, используя "Release - Static Lib". В этой конфигурации я блокирую директиву dllexport.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...