MSXML: كيف يمكن للمرء برمجيا الحصول على نص الخطأ عن التحويلات فشلت؟
سؤال
وXMLNotepad يقدم النص التالي (على سبيل المثال) عند تحويل فشل:
<اقتباس فقرة> خطأ التحول XML
المتغير
أو المعلمة
كان 'المشبعة لون الخلفية "
تتكرر بنفس استيراد
الأسبقية.
وكيف لي أن التوجه نحو الحصول على نص الخطأ هذا برمجيا؟ قانون بلدي يبدو مثل هذا:
CComPtr<IXSLTemplate> tmpl;
HRESULT hr = CoCreateInstance(CLSID_XSLTemplate, NULL, CLSCTX_INPROC_SERVER, IID_IXSLTemplate, (void**)&tmpl);
if (SUCCEEDED(hr)) {
hr = tmpl->putref_stylesheet(xslt_doc);
if (SUCCEEDED(hr)) {
// Huzzah; do stuff.
} else {
// How do I get the error text? I want to log it!
}
}
المحلول
إذا IXSLTemplate
يدعم IErrorInfo
(AFAIK، فإنه لا)، ثم يمكنك الاستعلام أن للحصول على معلومات إضافية.
و(jeffamaphone يشكون لي في الطريقة الصحيحة للحصول على هذا - باستخدام API GetErrorInfo()
:)
CComPtr<IErrorInfo> error;
if (SUCCEEDED( GetErrorInfo(0, &error) ) && error)
{
// call IErrorInfo::GetDescription(), etc.
}
لا تنتمي إلى StackOverflow