Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Аннотация

При построении библиотеки DLL с помощью 64-разрядной версии Microsoft Visual C++ компилятора и компоновщика появляется компоновщика LNK4197 номер ошибки, если функция объявлена для экспорта более чем один раз.

Проблемы

Выходных данных компоновщика может быть следующее:

C:\>link /NOLOGO /def:Sample.def /pdb:Sample.pdb /out:Sample.dll  Sample.objSample.obj : warning LNK4197: export 'DllSample' specified multiple times; using first specification   Creating library Sample.lib and object Sample.exp 

Причина

Компоновщика LNK4197 номер ошибки создается, когда функция объявлена для экспорта более чем один раз. Функция объявлена для экспорта в один из следующих способов:

  • Функция объявлена с помощью ключевого слова __declspec(dllexport) в исходном файле C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • Функция объявлена с помощью определения модуля (. Файл DEF):

    EXPORTS   DllSample

Эта ошибка компоновщика возникает чаще всего при обоих ключевое слово __declspec(dllexport) и. DEF-файла используются для определения с тем же именем функции. Проект библиотеки DLL.

Решение

Для решения этой проблемы необходимо определить экспортируемые функции с только один раз, с помощью ключевого слова __declspec(dllexport) или с помощью. DEF-файла. Не следует использовать оба этих метода.

Статус

Данное поведение является особенностью.

Дополнительная информация

Объявление функции для экспорта более чем один раз может привести к ошибке компоновщика, описанное в разделе «Проблема» данной статьи в 32-разрядных версий Microsoft Windows C++ компилятора и компоновщика. Тем не менее Корпорация Майкрософт рекомендует определить экспортируемые функции только один раз в 32-разрядных и 64-разрядных версиях Windows C++ компилятора и компоновщика.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×