Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Внутрішні відомості служби підтримки Microsoft

Помилка #: 101959 (Visual Studio)

Загальні відомості

При створенні 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;}
  • Функція оголошена за допомогою визначення модуля (. Чіткості) файл:

    EXPORTS   DllSample

Така помилка, зв'язування найчастіше виникає під час __declspec(dllexport) -ключове і. Чіткості файл використовується для визначення таким самим іменем функції в. Бібліотека DLL проект.

Спосіб вирішення

Щоб вирішити цю проблему, визначати експортованого функції лише один раз, за допомогою ключових слів __declspec(dllexport) або за допомогою до. Чіткості файл. Не використовуйте обидва ці методи.

Стан

Така поведінка передбачена.

Додаткові відомості

Призначення функції для експорту більше одного разу не може викликати зв'язування про помилку, описане в розділі "Ознаки" цієї статті у 32-розрядні версії Microsoft Windows C++-компілятор та зв'язування. Проте, корпорація Майкрософт рекомендує, визначені для 32- і 64-розрядних версій Windows C++ компілятор та зв'язування функція експорту, лише один раз.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×