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 yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×