使用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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章