zoukankan      html  css  js  c++  java
  • siverlight for windows embeddem 当中方便查看错误代码的类

    时间:20:12 2010-11-16

    环境:
    开发环境:VS2008 +XAML2CPP.EXE + SWE 2 + BLEND 2
    运行环境:WINCE 6.0 R3
    硬件加速: DirectX

    联系:
    网站:     http://www.pvontek.com
    E-MAIL:    pengxinglove@gmail.com

     

    背景

           在SWE当中,在对于XAML 文件进行解析的过程,经常会出现一个错误了,其以错误代码返回,错误代码其是一些数字。要想知道这些数字的含义,

           我们要去XamlRuntime.h 文件当中去查找,且查找过程麻烦。

           在一次看国外论坛的时候,看到了此类,感觉简单又方便使用。

     

    示例:

      if (FAILED(retcode=app->CreateHostFromXaml(&xamlsrc, &wp, &vhost)))

    {
                RETAILMSG( TRUE,

    (L"%s\n",SWEErrorCode::GetSilverLightErrorString( retcode)));
               return retcode;
    }

     

    源代码

    #pragma once

    class SWEErrorCode
    {
    public:

    static TCHAR*    GetSilverLightErrorString(
    HRESULT retcode)
    {
        static TCHAR    pszUnknownMessage[50];
        static    TCHAR    pszErrorStrings[][50] =
        {
            {TEXT("XR_E_ABSTRACT_BASE_CLASS")},//0
            {TEXT("XR_E_COLLECTION_DUPLICATE_NAME")},//1
            {TEXT("XR_E_COLLECTION_ELEMENT_ALREADY_ASSOCIATED")},//2
            {TEXT("XR_E_DUPLICATE_REGISTRATION")},//3
            {TEXT("XR_E_ELEMENT_NOT_CREATED")},//4
            {TEXT("XR_E_ELEMENT_NOT_FOUND")},//5
            {TEXT("XR_E_INVALID_OBJECT")},//6
            {TEXT("XR_E_INVALID_PROPERTY")},//7
            {TEXT("XR_E_INVALID_ROOT_FOR_CREATING_HOST")},//8
            {TEXT("XR_E_INVALID_STATE")},//9
            {TEXT("XR_E_INVALID_THREAD_ACCESS")},//10
            {TEXT("XR_E_NOT_INITIALIZED")},//11
            {TEXT("XR_E_PARSER_ATTRIBUTE_OUT_OF_RANGE")},//12
            {TEXT("XR_E_PARSER_ATTRIBUTE_READONLY")},//13
            {TEXT("XR_E_PARSER_FAILED_RESOURCE_FIND")},//14
            {TEXT("XR_E_PARSER_INVALID_ATTRIBUTE")},//15
            {TEXT("XR_E_PARSER_INVALID_ATTRIBUTE_VALUE")},//16
            {TEXT("XR_E_PARSER_INVALID_CONTENT")},//17
            {TEXT("XR_E_PARSER_INVALID_PROPERTY")},//18
            {TEXT("XR_E_PARSER_MISSING_DEFAULT_NAMESPACE")},//19
            {TEXT("XR_E_PARSER_MULTIPLE_PROPERTY_ELEMENT_VALUES")},//20
            {TEXT("XR_E_PARSER_RESOURCE_KEY_AND_NAME_SET")},//21
            {TEXT("XR_E_PARSER_TEXT_CONTENT_UNSUPPORTED")},//22
            {TEXT("XR_E_PARSER_UNKNOWN_ATTRIBUTE")},//23
            {TEXT("XR_E_PARSER_UNKNOWN_ELEMENT")},//24
            {TEXT("XR_E_PARSER_UNKNOWN_NAMESPACE")},//25
            {TEXT("XR_E_STORYBOARD_BEGIN_ANIMATION_COMPOSITION")},//26
            {TEXT("XR_E_STORYBOARD_BEGIN_INCOMPATIBLE_TYPE")},//27
            {TEXT("XR_E_STORYBOARD_BEGIN_INVALID_KEYTIME")},//28
            {TEXT("XR_E_STORYBOARD_BEGIN_INVALID_PROPERTY")},//29
            {TEXT("XR_E_STORYBOARD_BEGIN_INVALID_TARGET")},//30
            {TEXT("XR_E_STORYBOARD_BEGIN_NO_TARGET")},//31
            {TEXT("XR_E_STORYBOARD_MODIFY_ACTIVE_ANIMATION")},//32
            {TEXT("XR_E_STORYBOARD_MUST_BE_ROOT ")},//33
            {TEXT("XR_E_STORYBOARD_SKIPTOFILL_NO_DURATION")}//34
        };

        switch(retcode)
        {
            case XR_E_ABSTRACT_BASE_CLASS:
                return pszErrorStrings[0];
            case XR_E_COLLECTION_DUPLICATE_NAME:
                return pszErrorStrings[1];
            case XR_E_COLLECTION_ELEMENT_ALREADY_ASSOCIATED:
                return pszErrorStrings[2];
            case XR_E_DUPLICATE_REGISTRATION:
                return pszErrorStrings[3];
            case XR_E_ELEMENT_NOT_CREATED:
                return pszErrorStrings[4];
            case XR_E_ELEMENT_NOT_FOUND:
                return pszErrorStrings[5];
            case XR_E_INVALID_OBJECT:
                return pszErrorStrings[6];
            case XR_E_INVALID_PROPERTY:
                return pszErrorStrings[7];
            case XR_E_INVALID_ROOT_FOR_CREATING_HOST:
                return pszErrorStrings[8];
            case XR_E_INVALID_STATE:
                return pszErrorStrings[9];
            case XR_E_INVALID_THREAD_ACCESS:
                return pszErrorStrings[10];
            case XR_E_NOT_INITIALIZED:
                return pszErrorStrings[11];
            case XR_E_PARSER_ATTRIBUTE_OUT_OF_RANGE:
                return pszErrorStrings[12];
            case XR_E_PARSER_ATTRIBUTE_READONLY:
                return pszErrorStrings[13];
            case XR_E_PARSER_FAILED_RESOURCE_FIND:
                return pszErrorStrings[14];
            case XR_E_PARSER_INVALID_ATTRIBUTE:
                return pszErrorStrings[15];
            case XR_E_PARSER_INVALID_ATTRIBUTE_VALUE:
                return pszErrorStrings[16];
            case XR_E_PARSER_INVALID_CONTENT:
                return pszErrorStrings[17];
            case XR_E_PARSER_INVALID_PROPERTY:
                return pszErrorStrings[18];
            case XR_E_PARSER_MISSING_DEFAULT_NAMESPACE:
                return pszErrorStrings[19];
            case XR_E_PARSER_MULTIPLE_PROPERTY_ELEMENT_VALUES:
                return pszErrorStrings[20];
            case XR_E_PARSER_RESOURCE_KEY_AND_NAME_SET:
                return pszErrorStrings[21];
            case XR_E_PARSER_TEXT_CONTENT_UNSUPPORTED:
                return pszErrorStrings[22];
            case XR_E_PARSER_UNKNOWN_ATTRIBUTE:
                return pszErrorStrings[23];
            case XR_E_PARSER_UNKNOWN_ELEMENT:
                return pszErrorStrings[24];
            case XR_E_PARSER_UNKNOWN_NAMESPACE:
                return pszErrorStrings[25];
            case XR_E_STORYBOARD_BEGIN_ANIMATION_COMPOSITION:
                return pszErrorStrings[26];
            case XR_E_STORYBOARD_BEGIN_INCOMPATIBLE_TYPE:
                return pszErrorStrings[27];
            case XR_E_STORYBOARD_BEGIN_INVALID_KEYTIME:
                return pszErrorStrings[28];
            case XR_E_STORYBOARD_BEGIN_INVALID_PROPERTY:
                return pszErrorStrings[29];
            case XR_E_STORYBOARD_BEGIN_INVALID_TARGET:
                return pszErrorStrings[30];
            case XR_E_STORYBOARD_BEGIN_NO_TARGET:
                return pszErrorStrings[31];
            case XR_E_STORYBOARD_MODIFY_ACTIVE_ANIMATION:
                return pszErrorStrings[32];
            case XR_E_STORYBOARD_MUST_BE_ROOT:
                return pszErrorStrings[33];
            case XR_E_STORYBOARD_SKIPTOFILL_NO_DURATION:
                return pszErrorStrings[34];
            default:
                _stprintf(pszUnknownMessage,TEXT("UNKNOWN_ERROR (0x%x)"), retcode);
                return pszUnknownMessage;
        }
    }
    };

  • 相关阅读:
    Delphi中 弹出框的用法
    VC++代码上传到VSS上 注意事项
    VC++ 屏蔽掉警告
    IIS LocalDB 登录失败
    SVN版本回滚实战
    Git常用命令图解
    C# 百度API地址坐标互相转换
    Quartz.NET浅谈一 : 简单Job使用(定时发送QQ邮件)
    发布自己的类库包到Nuget
    C# 常用日期取得
  • 原文地址:https://www.cnblogs.com/pengxinglove/p/1878845.html
Copyright © 2011-2022 走看看