Bir C++ sınıfı veren bir MFC Extension DLL var ve bir sınıf yönteminin davranışını değiştirmem gerekiyor. Değişiklikler, sınıfın yöntemlerinin imzasını etkilemez.Yeniden MFC Extension DLL, dışa aktarılan işlevlerin giriş noktalarını değiştiriyor
Bu kitaplığın daha önce yayımlanmış sürümünün "lib" dosyasını kullanan modülleri yeniden derlemek istemiyorum.
Bu değişiklikler, işlevlerin giriş noktaları adresini değiştirdiğinde ne olur?
Örneğin, yapıcı adresi değişti:
Export Ordinal Function Hint Entry Point
[+ ] 3 (0x0003) 2 (0x0002) [email protected]@[email protected] 0x00009CB0 (OLD DLL)
[+ ] 3 (0x0003) 2 (0x0002) [email protected]@[email protected] 0x00009760 (NEW DLL)
Zaten kütüphane kullanma modüllerini yeniden derlemek gerekir?
Yeniden oluşturulan kitaplığı - yeni giriş noktalarıyla - yayımlanan yürütülebilir dosyaları kullanarak test ettim ve her şey iyi çalışıyor. Bu senaryonun bazı yan etkileri gizlediğinden emin değilim.
Bir yürütülebilir bağlantıyı bir DLL'ye yeniden derlemek ne zaman gereklidir?
İkili uyumluluk ne zaman bozulur?
Sınıflar kullanıyor gibi göründüğü için, konum hakkında yorumunuza ek olarak, ince kırılmalara neden olabilecek başka bir örnek de, DLL'de bulunan bir sınıf içinde yeni üye değişkenleri eklenirse budur. –
@NikBougalis, hatırlattığınız için teşekkürler - Bu durumu kapatmak için cevabımı ekledim. –
Yardımlarınız için herkese teşekkürler. – sam