Win32 C++ kod yazarken, Win32 API'lerinin hatalarını nasıl ele alacağımız konusunda bazı ipuçlarına değer veriyorum. ÖzellikleWin32 C++ kodunun hata işlenmesiyle ilgili öneriler: AtlThrow ve STL özel durumları
, bir Win32 işlev çağrısı bir arıza (örneğin MapViewOfFile) durumunda, daha iyi o:
kullanım AtlThrowLastWin32
std türetilmiş bir Win32Exception sınıfını tanımlamak :: istisna, HRESULT GetLastError tarafından döndürülen değere karşılık gelen bir HRESULT veri üyesi ile?
İkinci durumda, bir ayrıntılı hata dizesini döndürür ne() yöntemini kullanabilirsiniz (örneğin, "MapViewOfFile çağrı Sınıfım :: DoSomething() yöntemi. başarısız").
1 ve 2'nin artıları ve eksileri nelerdir?
Eksik olduğum başka herhangi bir seçenek var mı?
Bir not olarak, geliştirdiğim bileşeni yerelleştirmek istiyorsam, istisnayı yerelleştirmeyi nasıl yapabilirim() string? Unicode yerelleştirilmiş bir hata dizesine ne() tarafından döndürülen orijinal ingilizce dizgisini eşleyen bir tablo oluşturmayı düşünüyordum. Daha iyi bir yaklaşım önerilebilir mi?
Görüş ve önerileriniz için çok teşekkürler.