VC++ uygulamasında C++ arabirimine sahip bir üçüncü taraf COM bileşenim var. Aşağıdaki aramada çökme yaşıyorum ki bu da başvurumu bozuyor. Uygulamamın bir parçası olmayan bu işlevden incelikle nasıl kurtulabilirim?COM hatasından nasıl kurtarılır?
Son satırda çöker. Ben üçüncü parti COM şeyler beri bu kod değiştirebilir sanmıyorum. Hangi seçeneklere sahibim? Sadece kullanıcıya mesaj kutusu getirmek ve incelikle geri dönmek istiyorum.
* Emin * bu "kilitleniyor" değil, çünkü bir 'FAILED (_hr)' durumu nedeniyle atılan bir '_com_error &' yakalamıyorsunuz? Eğer hata ayıkladıysanız * neredeyse * garanti edilen hresult'unun SÜPERLİSİK bit'inin yanması garanti edilir (Sıfırlama için FAILED() 'e neden olan şey) – WhozCraig
Sadece COM ile aşina değilim, yakalamam gerek catch() bloğuyla mı? – zar
Evet. Genel kural, eğer bir istisna atılabilirse, ya onu yakalamanız ve idare etmeniz gerekir, ya da *** bilginizi arayan kişinin bunu yapacağını bilmenizdir. Yapılmadığı gibi geliyor. MSVC'den gelen "comutil" destek katmanı oldukça güçlüdür; neredeyse kendi başına bir metodoloji. Bunu aşağıda nasıl ele alabileceğinizi gösteren bir örnek ekledim. – WhozCraig