Bir üçüncü tarafa bağlanan bir MFC projem var dll. Program çıkışında IDE, "Algılanan bellek sızıntılarını" bildirir. ve sızıntıları döker.Bir MFC projesinde yanlış bellek sızıntıları
Bu sızıntılar üçüncü şahıslar dll. Bunların yanlış bir şekilde bildirildiğine eminim. (Hızlı bir Google kontrolü, MFC'nin dosya kapsamındaki değişkenleri yok etmesinden önce MFC'nin bellek sızıntılarını kontrol ettiğini belirtir.)
Bellek sızıntısı denetimini devre dışı bırakmanın bir yolu var mı, sadece bu dll? yanıta yanıt
ben API kötüye sanmıyorum şimdiye kadar
yayınlanmıştır. Sanıyorum davranış yeni bir çözüm oluşturma VS2005
- ile çoğaltılabilir. , Dll projede
- işlev vermek: (. MFC uygulaması)
- yeni bir proje (DLL, İhracat Semboller Windows 32 Proje, Uygulama Türü) oluşturma Yeni bir proje oluşturun. İşte
aşağıdaki dll projesinde kod
class foo
{
public:
foo(void) { p = new int; };
~foo(void) { delete p; }
private:
int* p;
};
olduğu gibi dll projede
foo g_foo;
// This is an example of an exported function.
TEMPDLL_API int exportedFunction(void)
{
return 42;
}
, p silinmiş olsa bile, bellek sızıntısı rapor edecektir kütüphaneye bağlantı ve uygulamayı çalıştırma InitInstance() ihraç işlevini çağırdığınızda yıkıcı için g_foo denir.
Lütfen bunun için iyi cevap olarak seçin. – INS
Bu, ** iyi bir cevap değil. Sorunun ne anlama geldiğini veya bu cevabın buna nasıl cevap verdiğini bile açıklamıyor. Bunu kullanıyorsanız, yanlış pozitiflerin geri dönüşüne hazırlıklı olun. – IInspectable