Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Вътрешна информация за поддръжка на Microsoft

ГРЕШКА #: 101959 (Visual Studio)

Обобщена информация

Когато създавате DLL с помощта на 64-битова версия на Microsoft Visual C++ компилатор и свързване, можете да получите Linker кода на грешка 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++ компилатор и свързване. Обаче Microsoft препоръчва да определите функция износ само веднъж в 32-битови и 64-битовите версии на Windows C++ компилатор и свързване.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×