Aracılığıyla paylaş


Visual C++ 6.0 bu yana yardımcı işlevi yüklenirken dll değişiklikleri Gecikmeli

Bilgisayarınızda birden fazla Visual C++ sürümü varsa veya kendi Yardımcısı işlevi tanımlanmışsa tarafından etkilenebilir dll yapılan değişiklikler yardımcı işlevi yüklenirken Gecikmeli.Örne?in:

  • __delayLoadHelper artık __delayLoadHelper2

  • __pfnDliNotifyHook artık __pfnDliNotifyHook2

  • __pfnDliFailureHook artık __pfnDliFailureHook2

  • __FUnloadDelayLoadedDLL artık __FUnloadDelayLoadedDLL2

[!NOT]

Varsayılan yardımcı işlevini kullanıyorsanız, bu değişiklikleri, etkilemez.Linker nasıl harekete geçirmek ile ilgili herhangi bir değişiklik vardır.

Visual C++ birden çok sürümü

Bilgisayarınızda birden fazla Visual C++ sürümü varsa, linker delayimp.lib eşleştiğinden emin olun.Bir uyuşmazlık varsa, ya da bir linker hata alırsınız ___delayLoadHelper2@8 veya ___delayLoadHelper@8 çözülmemiş bir dış simgesi olarak.Önceki eski bir delayimp.lib ile yeni bir bağlantı Oluşturucu anlamına gelir ve ikincisi eski bir bağlayıcı ile yeni delayimp.lib anlamına gelir.

Çözülmemiş linker hata iletisi alırsanız, çalışan dumpbin /linkermember: hangi yardımcı işlevini yerine tanımlanan görmek için yardımcı işlevi içeren beklediğiniz delayimp.lib 1.Yardımcı işlevi de bir nesne dosyasında tanımlanmış olması; çalışan dumpbin /symbols ve Ara delayLoadHelper(2).

Visual C++ 6.0 linker sonra sahip biliyorsanız:

  • Dumpbin tanımlar olup olmadığını belirlemek için gecikme yük yardımcının .lib veya .obj dosyasını çalıştırma __delayLoadHelper2.Aksi takdirde, bağlantı başarısız olur.

  • Tanımla __delayLoadHelper gecikme yardımcının .lib veya .obj dosyası yüklenemiyor.

Kullanıcı tanımlı işlevin Yardımcısı

Kendi Yardımcısı işlev tanımlanmış ve Visual C++ geçerli sürümünü kullanıyorsanız, aşağıdakileri yapın:

  • Yardımcısı işlevine yeniden adlandırma __delayLoadHelper2.

  • Gecikme tanımlayıcısı (ImgDelayDescr delayimp.h içinde) işaretçilerinde mutlak adreslerden (VAs) göreli adreslerine (RVAs) 32 ve 64 bit programların beklendiği gibi çalışmamasına değiştirilmiş olduğundan, işaretçiler bu geri dönüştürmeniz gerekir.Yeni bir işlev eklenmiştir: PFromRva, delayhlp.cpp içinde bulundu.Ya da 32 veya 64 bit işaretçiler dönüştürmek her tanımlayıcısı alanları bu işlevi kullanabilirsiniz.Varsayılan gecikme yük yardımcı işlevini örnek olarak iyi bir şablon olmaya devam ediyor.

Tüm alır için gecikme yüklenen dll yüklenemedi

Linker tüm Imports yüklenen gecikme olarak belirtilen bir dll dosyasından yükleyebilirsiniz.Bkz: Delay-Loaded dll için tüm Imports yükleme daha fazla bilgi için.

Ayrıca bkz.

Başvuru

Yardımcı işlevini anlama