Найдите связанный файл dll для __declspec (dllexport)

Я получил этот массивный проект со многими классами с определениями в файлах DLL. Мне нужно извлечь часть этого проекта и создать новый проект из этой части. Мне удалось найти некоторые DLL-файлы, используя карту кода в Visual Studio, но некоторые классы там не отображаются.

#   ifdef FCBase
#       define BaseExport  __declspec(dllexport)
#   else
#       define BaseExport  __declspec(dllimport)
#   endif

class BaseExport Handled
{.
.
};

Что указывает, какие DLL-файлы связаны с чем?

1

Решение

директива __declspec(dllexport) указывает, что все, что объявлено с помощью этой директивы, будет экспортировано из DLL для использования в каком-либо другом приложении, которое ссылается на эту DLL. Таким образом, при написании заголовочных файлов для кода, который будет скомпилирован в DLL, объявления функций и определения классов оформляются этой директивой. С другой стороны, код, который будет использовать эти функции и классы, должен будет объявить их с __declspec(dllimport), чтобы компоновщик знал, что они будут импортированы из DLL.

Обе директивы часто заменяются одним макросом, который принимает соответствующее значение в зависимости от настроек проекта. Таким образом, вы можете включить один и тот же заголовок в файлы реализации DLL и файлы реализации для некоторых других приложений, которые будут использовать эту DLL. Например, в вашем случае проект для DLL будет иметь FCBase определяется так BaseExport будет разрешать __declspec(dllexport) на этапе предварительной обработки. Это означает, что этот проект предназначен для реализации DLL. Проект, который не имеет FCBase определяется, что означает, что проект импортирует функции и классы из DLL.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]