Anda menerima galat LNK4197 dalam versi 64-bit Visual C++ Compiler

Informasi Dukungan Internal Microsoft

BUG #: 101959 (Visual Studio)

Ringkasan

Ketika Anda membangun DLL dengan menggunakan versi 64-bit dari Microsoft Visual C++ Compiler dan Linker, Anda mungkin menerima Linker nomor galat LNK4197 jika fungsi telah dinyatakan ekspor lebih dari satu kali.

Gejala

Linker output mungkin mirip dengan berikut ini:

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 

Penyebab

Linker nomor galat LNK4197 yang dihasilkan saat fungsi telah dinyatakan ekspor lebih dari satu kali. Fungsi menyatakan ekspor di salah satu cara berikut:

  • Fungsi menyatakan dengan menggunakan kata kunci __declspec(dllexport) di file sumber C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • Fungsi menyatakan menggunakan definisi modul (. Berkas DEF):

    EXPORTS   DllSample

Galat Linker ini mungkin terjadi paling sering ketika kata kunci __declspec(dllexport) kedua dan. DEF berkas yang digunakan untuk menetapkan nama fungsi yang sama di. Proyek DLL.

Pemecahan Masalah

Untuk mengatasi perilaku ini, tentukan diekspor fungsi hanya satu kali, dengan menggunakan kata kunci __declspec(dllexport) atau dengan menggunakan. DEF file. Jangan gunakan kedua metode ini.

Status

Perilaku ini merupakan bagian dari rancangan.

Informasi Selengkapnya

Menyatakan fungsi ekspor lebih dari satu kali mungkin tidak menghasilkan galat Linker yang dijelaskan di bagian "Gejala" dari artikel ini dalam versi 32-bit dari Microsoft Windows C++ Compiler dan Linker. Namun, Microsoft menyarankan Anda untuk menentukan fungsi ekspor hanya satu kali dalam versi 32-bit dan 64-bit Windows C++ Compiler dan Linker.

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×