Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Informacje wewnętrzne pomocy technicznej firmy Microsoft

Nr błędu: 101959 (Visual Studio)

Podsumowanie

Podczas tworzenia biblioteki DLL przy użyciu 64-bitowej wersji programu Microsoft Visual C++ kompilator i łączenie, może zostać wyświetlony Linker numer błędu LNK4197, jeśli funkcja została zadeklarowana na wywóz więcej niż jeden raz.

Symptomy

Program łączący dane wyjściowe mogą być podobne do następujących:

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 

Przyczyna

Program łączący numer błędu LNK4197 jest generowany, gdy funkcja została zadeklarowana na wywóz więcej niż jeden raz. Funkcja jest zadeklarowana na wywóz w jednym z następujących sposobów:

  • Funkcja jest zadeklarowana za pomocą słowa kluczowego __declspec(dllexport) w pliku źródłowego C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • Funkcja jest zadeklarowana za pomocą definicji modułów (. Plik DEF):

    EXPORTS   DllSample

Najczęściej występuje ten błąd łączenie po słowie kluczowym __declspec(dllexport) i. Plik DEF są używane do definiowania tej samej nazwie funkcji w. Projekt biblioteki DLL.

Rozwiązanie

Aby rozwiązać ten problem, zdefiniować eksportowanych funkcji tylko jeden raz, przy użyciu słowa kluczowego __declspec(dllexport) lub za pomocą. Plik DEF. Nie należy używać obu tych metod.

Stan

To zachowanie jest zgodne z projektem.

Więcej informacji

Deklarowanie funkcji na wywóz więcej niż jeden raz mogą nie dawać błędu program łączący, który jest opisany w sekcji "Symptomy" tego artykułu w 32-bitowych wersjach systemu Microsoft Windows C++ kompilator i łączenie. Firma Microsoft zaleca jednak zdefiniować funkcję wywozu tylko jeden raz w zarówno 32-bitowe i 64-bitowych wersjach systemu Windows C++ kompilator i łączenie.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×