使用TinyXML解析资源中的XML

/* * 功 能:从资源中加载XML文件 * 参 数:uiResID - XML文件在资源中的ID * sResType - XML文件在资源中资源类型 * xmlDoc - 用于加载XML内容的TiXmlDocument对象 * 返回值:是否成功 */
BOOL LoadXMLResource(IN UINT uiResID, IN const CString& sResType,
    OUT TiXmlDocument& xmlDoc)
{
    CString sResourceID(_T(""));
    sResourceID.Format(_T("#%u"), uiResID);
    HRSRC hFindRes = FindResource(NULL, sResourceID, sResType);
    if (NULL == hFindRes)
    {
        ATLASSERT(hFindRes);
        return FALSE;
    }

    HGLOBAL hLoadRes = ::LoadResource(NULL, hFindRes);
    if (NULL == hLoadRes)
    {
        return FALSE;
    }

    LPBYTE pLoadedRes = (LPBYTE)LockResource(hLoadRes);
    if (NULL == pLoadedRes)
    {
        FreeResource(hLoadRes);
        return FALSE;
    }

    xmlDoc.Parse((PSTR)pLoadedRes, 0, TIXML_DEFAULT_ENCODING);
    FreeResource(hLoadRes);

    return TRUE;
}

你可能感兴趣的:(资源加载,tinyxml)