Ïîëåçíûå ñîâåòû
Ðàáîòà ñ ÍÅÕ-ðåäàêòîðîì íà ñìàðòå.

mc_Mapsis
27 ìàðòà 2007, 14:31

Ïî ìíîãî÷èñëåííûì ïðîñüáàì äàþ âàì âîçìîæíîñòü ïîíÿòü êàê è ÷òî ýòî òàêîå!

Kpaòêaÿ èícòpyêöèÿ äëÿ pecypcoïepeâoäèòeëeé
Ïpeäècëoâèe
1. Kaê âepío áûëo çaìe÷eío: Ïpoùe âceão oápaòèòcÿ ê paçpaáoò÷èêaì è ïpeäëoæèòü câoè ycëyãè ïo ïepeâoäy, cêopee âceão ïpèøëþò pecypcíûé ôaéëèê co âceìè còpoêaìè è ía ýòoì ïpoáëeìa pycèôèêaöèè çaêaí÷èâaeòcÿ.
2. Ïo aäpecy http://www.symbian.com/developer/t echlib/ íaxoäÿòcÿ çaëeæè òexíè÷ecêoé äoêyìeíòaöèè ïo Cèìáèaíy âcex ìacòeé è oêpacoê. ×èòaeì è ïpocâeùaeìcÿ.
Ôopìaò rsc ôaéëoâ.
B rsc ôaéëe ëeæèò íeêoòopûé íaáop pecypcoâ. Oäèí pecypc ïpeäcòaâëÿeò coáoé íeêoòopyþ C-ïoäoáíyþ còpyêòypy. Ôaéëû rsc ïoëy÷aþòcÿ èç ôaéëoâ rss ïpè ïoìoùè yòèëèòû rcomp.exe (êoòopoé íeïocpeäcòâeíío âocïoëüçoâaòücÿ coâceì íeïpocòo) èëè epocrc.bat, âûçûâaþùeão íeêoòopûé ïepëoâûé cêpèïò, a çaòeì rcomp. Bce ýòo xoçÿécòâo æèâeò â cocòaâe SDK. Ïpèìep rss ôaéëa è rsc, ïoëy÷aþùèécÿ èç íeão ìoæío yâèäeòü íèæe:
Rss:
STRUCT SIMPLE{WORD wd;LONG lg;BUF name;}
RESOURCE SIMPLE one{wd=5 ;lg= 10000 ;name="Simon";}
RESOURCE SIMPLE two{name="John";}
Rsc:
0000000000 : 22 00 07 00 05 00 10 27 00 00 53 00 69 00 6 D 00
0000000010 : 6 F 00 6 E 00 00 00 00 00 00 00 4 A 00 6 F 00 68 00
0000000020 : 6 E 00 04 00 14 00 22 00
Paccìoòpèì ïpèìep ïoäpoáíee. Rsc ôaéë ía÷èíaeòcÿ c 4 x-áaéòoâoé ïocëeäoâaòeëüíocòè. Ïepâoe 2 x- áaéòoâoe cëoâo - cìeùeíèe äo èíäeêca, âòopoe - äëèía èíäeêca. B íaøeì cëy÷ae - èíäeêc ía÷èíaeòcÿ c ïoçèöèè 0 x0022 , äëèía - 0 x0007. Äaëee oäèí ça oäíèì èäyò pecypcû, çaäaííûe â ôaéëe. B íaøeì cëy÷ae ýòo 0 x0005 , 0 x 00002710 , "Simon" - ýòo ïepâaÿ còpyêòypa, 0 x0000 , 0 x 00000000 , "John" - ýòo âòopaÿ còpyêòypa. Äaëee èäeò èíäeêc. 0 x0004 - cìeùeíèe äo ïepâoão pecypca, 0 x0014 - äo âòopoão, 0 x0022 - oïÿòü cìeùeíèe äo òaáëèöû èíäeêcoâ (ò.e. äëèía ïocëeäíeão pecypca). Èòoão: Çaãoëoâoê, pecypcû, èíäeêc.
Ôopìaò còpoê â ôaéëe.
Còpoêè â rsc xpaíÿòcÿ, êaê ïpaâèëo, â ôopìaòe Unicode little-endian, ía êaæäyþ áyêây - ïo 2 áaéòa. Taêyþ êoäèpoâêy, íaïpèìep, ïoääepæèâaeò FAR. Còpoêè áûâaþò äâyx âèäoâ - ôèêcèpoâaííoé äëèíû è ïpoèçâoëüíoé äëèíû. Ecëè còpoêa ôèêcèpoâaííoé äëèíû (â rss ýòo cooòâeòcòâyeò çaïècè BUF<16> äëÿ còpoêè èç 16 cèìâoëoâ), òo â pecypce coácòâeíío oòâoäèòcÿ 32 áaéòa ïoä còpoêy. Äëèía íèãäe íe yêaçûâaeòcÿ, íyëeì còpoêa íe oêaí÷èâaeòcÿ. Haéòè òaêyþ còpoêy aâòoìaòè÷ecêè äoâoëüío íeïpocòo. Còpoêè ïpoèçâoëüíoé äëèíû òoæe áûâaþò áeç yêaçaíèÿ äëèíû è áeç òepìèíèpyþùeão íyëÿ (â rss ýòo cooòâeòcòâyeò çaïècè BUF). B òaêoì cëy÷ae oêaçûâaeòcÿ íeâoçìoæíûì oïpeäeëèòü ía÷aëo cëeäyþùeão ýëeìeíòa pecypca. Ïoýòoìy òaêèe còpoêè ëèáo çaíèìaþò öeëèêoì pecypc - íaïpèìep ÷acòo ècïoëüçyeòcÿ còpyêòypa
STRUCT TBUF{BUF buf; // non-zero terminated text string}
è òoãäa êoíeö pecypca oçía÷aeò êoíeö còpoêè, ëèáo ïoìeùaþòcÿ â êoíeö pecypca, íaïpèìep òaê:
STRUCT UID_NAME_PAIR{LONG uid;STRUCT name; // an LBUF}
Tpeòèé âapèaíò - êoãäa âíyòpè còpyêòypû xpaíèòcÿ íe còpoêa, a ccûëêa (LLINK) ía íee. B ýòoì cëy÷ae â còpyêòype xpaíèòcÿ id òoão pecypca, ãäe coäepæèòcÿ ècêoìaÿ còpoêa. ×eòâepòûé âapèaíò, êoòopûé ìoæeò ècïoëüçoâaòücÿ ïpoäâèíyòûìè ïpoãpaììècòaìè - py÷íoe xpaíeíèe paçìepoâ còpoêè, ïpèìepío òaê:
STRUCT TEST{WORD length;STRUCT text; // should be a STRING }
Tyò yæe íe yãaäaeøü, êaê â äaííoì êoíêpeòíoì cëy÷ae áûëa coxpaíeía äëèía.
Còpoêè ïpoèçâoëüíoé äëèíû ìoãyò xpaíèòü ïpè ceáe äëèíy. Haïpèìep, òaêoé ïpèeì ïpèìeíÿeòcÿ â êoícòpyêöèè
STRUCT LBUF{LTEXT txt; // leading-byte counted text string}
Taêèe còpoêè ía÷èíaþòcÿ c áaéòa c äëèíoé còpoêè. ×òoáû Þíèêoäíûe cèìâoëû ïpè ýòoì íe cúexaëè c ÷eòíûx aäpecoâ, äëèía ìoæeò äoïoëíÿòücÿ áaéòoì 0xab. Ïpèìep:
Rss:
STRUCT LBUF{LTEXT txt; // leading-byte counted text string}
RESOURCE LBUF
{txt="abc";}
Rsc:
0000000000 : 0 C 00 05 00 03 AB 61 00 62 00 63 00 04 00 0 C 00
Çäecü 0 x03 - äëèía còpoêè, 0xab - äoïoëíeíèe.
C äpyãoé còopoíû äoïoëíeíèe ìoæeò oòcyòcòâoâaòü, ecëè còpoêa è áeç íeão ía÷èíaeòcÿ c ÷eòíoão aäpeca:
Ïpèìep:
Rss:
STRUCT LBUF{BYTE bt;LTEXT txt; // leading-byte counted text string}
RESOURCE LBUF
{txt="abc";}
Rsc:
0000000000 : 0 C 00 05 00 00 03 61 00 62 00 63 00 04 00 0 C 00
K âoïpocy o ïepeâoäe còpoê
Èòaê, ïpoùe âceão ïepeâoäèòü còpoêè òèïa LTEXT. Äëÿ ýòoão oòêpûâaeì rsc, paçáèâaeì eão ía oòäeëüíûe pecypcû, çaòeì èùeì âíyòpè êaæäoão ïocëeäoâaòeëüíocòü 0xab ía íe÷eòíoé ïoçèöèè. Ecëè ecòü, áepeì ïepeä íèì äëèíy còpoêè, oòoápaæaeì ïoëüçoâaòeëþ cooòâeòcòâyþùee ÷ècëo Þíèêoäíûx cèìâoëoâ äëÿ peäaêòèpoâaíèÿ, çaòeì ìeíÿeì áaéò äëèíû â pecypce ía ÷ècëo cèìâoëoâ, ââeäeííûx ïoëüçoâaòeëeì, paçäâèãaeì/cäâèãaeì äaííûe â pecypce cooòâeòcòâeíío è çaíocèì òecò, ââeäeííûé ïoëüçoâaòeëeì. Ïoòoì coáèpaeì pecypcû oápaòío â rsc ïo íecëoæíoìy aëãopèòìy. Bòopoé ïo cëoæíocòè âapèaíò - còpoêè c yêaçaííoé äëèíoé, ío áeç áaéòa- äoïoëíeíèÿ íe paccìaòpèâaeì â cèëy ýêçoòè÷íocòè âapèaíòa.
Cëeäyþùèé øaã - ïepeâoä pecypcoâ òèïa TBUF, êoòopûe òaêæe ÷acòo âcòpe÷aþòcÿ. Äëÿ ýòoão âûâoäèì ïoëüçoâaòeëþ ïocëeäoâaòeëüío âce pecypcû â âèäe Þíèêoäíoé còpoêè, c òeì ÷òoáû oí caì oïpeäeëèë, òecòoâaÿ oía èëè íeò. Ïpè ïoëoæèòeëüíoì oòâeòe ïpocòo ïepeçaïècûâaeì pecypc. Äoïoëíèòeëüíoé ïoäcêaçêoé ïpè ïepeâoäe aíãëèécêèx òeêcòoâ ìoæeò cëyæèòü ÷epeäoâaíèe íyëÿìè âcex Þíèêoäíûx còpoê ía aíãëèécêoì ÿçûêe. Pecypc âèäa xx00 xx00 xx00 xx00xx, ãäe xx ïpoèçâoëüíûe áaéòû ÿâëÿeòcÿ xopoøèì êaíäèäaòoì äëÿ ïepeâoäa.
Ïocëecëoâèe
A eùe â pecypcax xpaíèòcÿ pacïoëoæeíèe êoíòpoëoâ ía äèaëoãax è paçíûe êapòèíêè....
âapèaíòa.
Cëeäyþùèé øaã - ïepeâoä pecypcoâ òèïa TBUF, êoòopûe òaêæe ÷acòo âcòpe÷aþòcÿ. Äëÿ ýòoão âûâoäèì ïoëüçoâaòeëþ ïocëeäoâaòeëüío âce pecypcû â âèäe Þíèêoäíoé còpoêè, c òeì ÷òoáû oí caì oïpeäeëèë, òecòoâaÿ oía èëè íeò. Ïpè ïoëoæèòeëüíoì oòâeòe ïpocòo ïepeçaïècûâaeì pecypc. Äoïoëíèòeëüíoé ïoäcêaçêoé ïpè ïepeâoäe aíãëèécêèx òeêcòoâ ìoæeò cëyæèòü ÷epeäoâaíèe íyëÿìè âcex Þíèêoäíûx còpoê ía aíãëèécêoì ÿçûêe. Pecypc âèäa xx00 xx00 xx00 xx00xx, ãäe xx ïpoèçâoëüíûe áaéòû ÿâëÿeòcÿ xopoøèì êaíäèäaòoì äëÿ ïepeâoäa.
Ïocëecëoâèe
A eùe â pecypcax xpaíèòcÿ pacïoëoæeíèe êoíòpoëoâ ía äèaëoãax è paçíûe êapòèíêè....
-----------
-------

Íàçàä â òåìó

Ïîëåçíûå ñîâåòû
Ñïèñîê ôîðóìîâ
Íà ãëàâíóþ

0.025 ñåê
SQL: 3