Visual C++ Derleyici, 64-bit sürümünde bir LNK4197 hata iletisi

Microsoft İç Destek Bilgileri

# Hata: 101959 (Visual Studio)

Özet

Microsoft Visual C++ Derleyici ve bağlayıcı 64-bit sürümünü kullanarak bir DLL oluştururken, daha fazla zaman vermek için bir işlev bildirdiyseniz Linker Hata numarası LNK4197 alabilirsiniz.

Belirtiler

Bağlayıcı çıktı aşağıdakine benzer olabilir:

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 

Neden

Daha fazla zaman vermek için bir işlev bildirilmiş Linker Hata numarası LNK4197 üretilir. Bir işlev dışa aktarmak için aşağıdaki yollardan biriyle bildirilmiþtir:

  • İşlev C kaynak dosyanızdaki __declspec(dllexport) anahtar sözcüğü kullanılarak bildirilir:

    __declspec(dllexport) int DllSample() {   return 42;}
  • İşlev bir modül tanımı kullanılarak bildirilen (. DEF) dosyası:

    EXPORTS   DllSample

Bu bağlayıcı hatanın sık karşılaşılan zaman __declspec(dllexport) anahtar ve bir. DEF dosyası aynı işlev adı tanımlamak için kullanılan bir. DLL projesi.

Çözüm

Bu davranışı gidermek için dışarı aktarılan işlevler yalnızca bir kez __declspec(dllexport) anahtar sözcüğünü kullanarak veya kullanarak tanımlayan bir. DEF dosyası. Bu yöntemlerin her ikisi de kullanmayın.

Durum

Bu davranış normaldir.

Ek Bilgi

Daha fazla zaman vermek bir işlev bildirmenin 32-bit sürümlerinde Microsoft Windows C++ Derleyici ve bağlayıcı bu makalenin "Belirtiler" bölümünde açıklanan Linker Hata üretmeyebilir. Ancak, Microsoft 32-bit hem de 64-bit sürümlerinde Windows C++ Derleyici ve bağlayıcı işlevi dışarı yalnızca bir kez tanımlamak önerir.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×