www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - resource_string

reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
Is there or will there be a resource_string that's not dependant on MFC?
May 21 2004
parent reply "Matthew" <matthew.hat stlsoft.dot.org> writes:
There's basic_resource_string in winstl_resource_string.h, which is in the
inprogress directory. I've been using this myself a lot recently (in the shell
extensions just updated at http://shellext.com) and will promote this to the
main
directory for 1.7.1.

It requires a base string to use, e.g. std::string, and you can supply an
exception policy type (otherwise it uses stlsoft::null_exception, which does not
throw, and the string is just empty on failure).

Beware that it does not yet work for UNICODE, but I will make this work before
1.7.1 (which I am hoping to release in the next few days ...).

Good reminder! :-)

"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c8lk6v$r7m$1 digitaldaemon.com...
 Is there or will there be a resource_string that's not dependant on MFC?
May 21 2004
parent reply "Matthew" <matthew.hat stlsoft.dot.org> writes:
I've done it, and added in unit testing (and tested it!). Here's a sneak
preview.

Note: It does work with UNICODE. I was blowing hot air. ;)

"Matthew" <matthew.hat stlsoft.dot.org> wrote in message
news:c8lnhp$10ei$1 digitaldaemon.com...
 There's basic_resource_string in winstl_resource_string.h, which is in the
 inprogress directory. I've been using this myself a lot recently (in the shell
 extensions just updated at http://shellext.com) and will promote this to the
main
 directory for 1.7.1.

 It requires a base string to use, e.g. std::string, and you can supply an
 exception policy type (otherwise it uses stlsoft::null_exception, which does
not
 throw, and the string is just empty on failure).

 Beware that it does not yet work for UNICODE, but I will make this work before
 1.7.1 (which I am hoping to release in the next few days ...).

 Good reminder! :-)

 "Pablo Aguilar" <paguilarg hotmail.com> wrote in message
 news:c8lk6v$r7m$1 digitaldaemon.com...
 Is there or will there be a resource_string that's not dependant on MFC?
begin 666 winstl_resource_string.h M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT*("H 1FEL93H M(" (" ('=I;G-T;%]R97-O=7)C95]S=')I;F<N:" H1F]R;65R;'D 35=2 M97-3='(N:#H .CI3>6YE<VES5VEN*0T*("H-"B J(%!U<G!O<V4Z(" ("!B M87D ,C P- T*("H-"B J($%U=&AO<CH (" ("!-871T:&5W(%=I;'-O;BP M4WEN97-I<R!3;V9T=V%R92!0='D 3'1D+ T*("H-"B J($QI8V5N<V4Z(" M(" H3&EC96YS960 =6YD97( =&AE(%-Y;F5S:7, 4V]F='=A<F4 4W1A;F1A M* T*("H (" (" (" (" ('=W=SH (" (" (&AT=' Z+R]W=W<N<WEN M(" :'1T<#HO+W=W=RYW:6YS=&PN;W)G+PT*("H-"B J(" (" (" (" M("!E;6%I;#H (" ("!S=6)M:7-S:6]N<T!W:6YS=&PN;W)G("!F;W( <W5B M;6ES<VEO;G,-"B J(" (" (" (" (" (" (" (" ("!A9&UI;D!W M(" (" (" (" (%)E9&ES=')I8G5T:6]N(&%N9"!U<V4 :6X <V]U<F-E M(&%N9"!B:6YA<GD 9F]R;7,L('=I=& ;W(-"B J(" (" (" (" ("!W M:71H;W5T(&UO9&EF:6-A=&EO;BP 87)E('!E<FUI='1E9"!P<F]V:61E9"!T M:&%T('1H92!F;VQL;W=I;F<-"B J(" (" (" (" ("!C;VYD:71I;VYS M*B (" (" (" (" 8V]P>7)I9VAT(&YO=&EC92!A;F0 8V]N=&%C="!I M9&ET:6]N<R!A;F0 =&AE(&9O;&QO=VEN9R!D:7-C;&%I;65R+ T*("H-"B J M(" (" (" (" (" H:6DI($%N>2!D97)I=F5D('9E<G-I;VYS(&]F('1H M:7, <V]F='=A<F4 *&AO=W-O979E<B!M;V1I9FEE9"D-"B J(" (" (" M(" ("!R96UA:6X =&AE('-O;&4 <')O<&5R='D ;V8 4WEN97-I<R!3;V9T M=F5R<VEO;G, ;V8 =&AI<R!S;V9T=V%R92 H:&]W<V]E=F5R(&UO9&EF:65D M*0T*("H (" (" (" (" (')E;6%I;B!S=6)J96-T('1O(&%L;"!T:&5S M92!C;VYD:71I;VYS+ T*("H-"B J(" (" (" (" (" H:78I($YE:71H M97( =&AE(&YA;64 ;V8 4WEN97-I<R!3;V9T=V%R92!N;W( =&AE(&YA;65S M(&]F(&%N>0T*("H (" (" (" (" ('-U8F1I=FES:6]N<RP 96UP;&]Y M*B (" (" (" (" ;F%M97, ;V8 86YY(&]T:&5R(&-O;G1R:6)U=&]R M(" (" 96YD;W)S92!O<B!P<F]M;W1E('!R;V1U8W1S(&1E<FEV960 9G)O M;2!T:&ES('-O9G1W87)E('=I=&AO=70-"B J(" (" (" (" ("!S<&5C M(" (" (%1H:7, <V]U<F-E(&-O9&4 :7, <')O=FED960 8GD 4WEN97-I M<R!3;V9T=V%R92 B87, :7,B(&%N9"!A;GD-"B J(" (" (" (" ("!W M87)R86YT:65S+"!W:&5T:&5R(&5X<')E<W-E9"!O<B!I;7!L:65D+"!I;F-L M=61I;F<L(&)U="!N;W0-"B J(" (" (" (" ("!L:6UI=&5D('1O+"!T M:&4 :6UP;&EE9"!W87)R86YT:65S(&]F(&UE<F-H86YT86)I;&ET>2!A;F0- M"B J(" (" (" (" ("!F:71N97-S(&9O<B!A('!A<G1I8W5L87( <'5R M<&]S92!A<F4 9&ES8VQA:6UE9"X 26X ;F\ 979E;G0-"B J(" (" (" M(" ("!S:&%L;"!T:&4 4WEN97-I<R!3;V9T=V%R92!B92!L:6%B;&4 9F]R M(&%N>2!D:7)E8W0L(&EN9&ER96-T+ T*("H (" (" (" (" (&EN8VED M96YT86PL('-P96-I86PL(&5X96UP;&%R>2P ;W( 8V]N<V5Q=65N=&EA;"!D M*B (" (" (" (" ;W( <V5R=FEC97,[(&QO<W, ;V8 =7-E+"!D871A M+"!O<B!P<F]F:71S.R!O<B!B=7-I;F5S<PT*("H (" (" (" (" (&EN M=&5R<G5P=&EO;BD :&]W979E<B!C875S960 86YD(&]N(&%N>2!T:&5O<GD M;V8 ;&EA8FEL:71Y+ T*("H (" (" (" (" ('=H971H97( :6X 8V]N M=')A8W0L('-T<FEC="!L:6%B:6QI='DL(&]R('1O<G0 *&EN8VQU9&EN9PT* M("H (" (" (" (" (&YE9VQI9V5N8V4 ;W( ;W1H97)W:7-E*2!A<FES M:6YG(&EN(&%N>2!W87D ;W5T(&]F('1H92!U<V4 ;V8-"B J(" (" (" M(" ("!T:&ES('-O9G1W87)E+"!E=F5N(&EF(&%D=FES960 ;V8 =&AE('!O M* T*("H +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M"B-D969I;F4 7U=)3E-43%])3D-,7TA?5TE.4U1,7U)%4T]54D-%7U-44DE. M5$E/3 T*(R!D969I;F4 7U=)3E-43%]615)?2%]724Y35$Q?4D533U520T5? M24Y35$Q?5D527TA?5TE.4U1,7U)%4T]54D-%7U-44DE.1U]2159)4TE/3B M,0T*(R!D969I;F4 7U=)3E-43%]615)?2%]724Y35$Q?4D533U520T5?4U12 M3E1!5$E/3E]32TE07U-%0U1)3TX *B\-" T*+RH +R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M9B!?5TE.4U1,7TE.0TQ?2%]724Y35$P-"B, :6YC;'5D92 B=VEN<W1L+F B M(" (" (" (" (" ("\O($EN8VQU9&4 =&AE(%=I;E-43"!R;V]T(&AE M861E< T*(V5N9&EF("\J("%?5TE.4U1,7TE.0TQ?2%]724Y35$P *B\-"B-I M(R!I;F-L=61E(")S=&QS;V9T7W-T<FEN9U]T<F%I=',N:"( +R\ <W1L<V]F M=#HZ<W1R:6YG7W1R86ET<PT*(V5N9&EF("\J("%?4U1,4T]&5%])3D-,7TA? M0TQ?2%]35$Q33T947T580T505$E/3E,-"B, :6YC;'5D92 B<W1L<V]F=%]E M96YD:68 +RH (5]35$Q33T947TE.0TQ?2%]35$Q33T947T580T505$E/3E, M9SX (" (" (" (" (" (" O+R!S=&0Z.G-T<FEN9RP <W1D.CIW<W1R M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M4U1,4T]&5%].3U].04U%4U!!0T4-"B\J(%1H97)E(&ES(&YO('-T;'-O9G0 M;F%M97-P86-E+"!S;R!M=7-T(&1E9FEN92 Z.G=I;G-T;" J+PT*;F%M97-P M<W1L7W!R;VIE8W0 *B\-" T*;F%M97-P86-E('-T;'-O9G0-"GL-" T*;F%M M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M<FEE<PT*+R\O(%QB<FEE9B!4:&4 :6YD:79I9'5A;"!L:6)R87)I97,-" T* M+R\O(%QW96%K9W)O=7 ;&EB<F%R:65S7W-T<FEN9R!3=')I;F< 3&EB<F%R M>0T*+R\O(%QI;F=R;W5P(&QI8G)A<FEE<PT*+R\O(%QB<FEE9B!4:&ES(&QI M8G)A<GD <')O=FED97, 9F%C:6QI=&EE<R!F;W( 9&5F:6YI;F< 86YD(&UA M9W)O=7 5VEN4U1,(&QI8G)A<FEE<U]S=')I;F<-"B\O+R!<8G)I968 5&AI M<R!L:6)R87)Y('!R;W9I9&5S(&9A8VEL:71I97, 9F]R(&1E9FEN:6YG(&%N M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($-L87-S M+R!);G-T86YC97, ;V8 =&AI<R!C;&%S<R!R97!R97-E;G0 5VEN9&]W<R!S M=')I;F< <F5S;W5R8V5S+"!A;F0 87)E( T*+R\O(&-O;G-T<G5C=&5D(&9R M:&4 <W1R:6YG(&-L87-S+"!E+F<N('-T9#HZ<W1R:6YG+"!S=&QS;V9T.CIS M:69D968 7U]35$Q33T947T-&7U1%35!,051%7T-,05-37T1%1D%53%1?0TQ! M4U-?05)'54U%3E1?4U504$]25 T*(" (" (" L(" <W-?='EP96YA;65? M<&%R86U?:R!8(#T <W1L<V]F=%]N<U]Q=6%L*&YU;&Q?97AC97!T:6]N*0T* M04E44RD-"B\O(" (" (" L(" <W-?='EP96YA;65?<&%R86U?:R!4(#T M(" (" (" L(" <W-?='EP96YA;65?<&%R86U?:R!4(#T <W1L<V]F=%]N M<U]Q=6%L7W-T9"AC:&%R7W1R86ET<RD\0SX-"B\O(R!E;F1I9B O*B A7U-4 M3%-/1E1?3D]?3D%-15-004-%("8F("%?4U1,4T]&5%]324U03$5?4U1224Y' M14Y47U-54%!/4E0 *B\-"B (" (" +" ('-S7W1Y<&5N86UE7W!A<F%M M7VL 6" O*B ]('-T;'-O9G1?;G-?<75A;"AN=6QL7V5X8V5P=&EO;BD *B\- M"B\O(" (" +" ('-S7W1Y<&5N86UE7W!A<F%M7VL 0R O*B ]('-S7W1Y M<&5N86UE7W1Y<&5?9&5F7VL 4SHZ=F%L=65?='EP92 J+PT*+R\ (" (" M("P ("!S<U]T>7!E;F%M95]P87)A;5]K(%0 +RH /2!S=&QS;V9T7VYS7W%U M7U1%35!,051%7T-,05-37T1%1D%53%1?0TQ!4U-?05)'54U%3E1?4U504$]2 M93H-"B ("!T>7!E9&5F(%, (" (" (" (" (" (" (" (" (" M(" (" (" (" ("!P87)E;G1?8VQA<W-?='EP93L-"B\O(" ('1Y<&5D M968 0R (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" (" <W1R:6YG7W1Y<&4[ M(" (" (" (" 8VQA<W-?='EP93L-"B ("!T>7!E9&5F(% (" (" M(" (" (" (" (" (" (" (" (" (" (" ("!E>&-E<'1I;VY? M='EP93L-"B ("!T>7!E9&5F('-T;'-O9G1?;G-?<75A;"AS=')I;F=?=')A M(" (" (" (" (" (" (" (" (" (" (" (" ( T*(" ('1Y M<&5D968 <W-?='EP96YA;65?='EP95]K('-T<FEN9U]T>7!E.CIV86QU95]T M:6YG(&QO861E9"!F<F]M('1H92!G:79E;B!<8R!I9 T*(" (&5X<&QI8VET M(&)A<VEC7W)E<V]U<F-E7W-T<FEN9RAW<U]I;G1?="!I9"D =&AR;W<H97AC M97!T:6]N7W1Y<&4Z.G1H<F]W;E]T>7!E*0T*(" ('L-"B (" (" ;&]A M9" Z.D=E=$UO9'5L94AA;F1L92A.54Q,*2P :60I.PT*(" ('T-" T*(" M<F]M('1H92!G:79E;B!<8R!I9"!A;F0 7&, :&EN<W0-"B ("!B87-I8U]R M97-O=7)C95]S=')I;F<H2$E.4U1!3D-%(&AI;G-T+"!W<U]I;G1?="!I9"D M=&AR;W<H97AC97!T:6]N7W1Y<&4Z.G1H<F]W;E]T>7!E*0T*(" ('L-"B M(&)A<VEC7W)E<V]U<F-E7W-T<FEN9R F<FAS*0T*(" (" (" Z('!A<F5N M<W1R=6-T;W(-"B ("!B87-I8U]R97-O=7)C95]S=')I;F<H8V]N<W0 <W1R M:6YG7W1Y<&4 )G)H<RD-"B (" (" .B!P87)E;G1?8VQA<W-?='EP92AR M;W(-"B ("!C;VYS="!B87-I8U]R97-O=7)C95]S=')I;F< )F]P97)A=&]R M(#TH8V M(" (" ("!P87)E;G1?8VQA<W-?='EP93HZ;W!E<F%T;W( /2AR:',I.PT* M87-S:6=N;65N="!O<&5R871O< T*(" (&-O;G-T(&)A<VEC7W)E<V]U<F-E M7W-T<FEN9R F;W!E<F%T;W( /2AC;VYS="!S=')I;F=?='EP92 F<FAS*0T* M(" ('L-"B (" (" <&%R96YT7V-L87-S7W1Y<&4Z.F]P97)A=&]R(#TH M7W0 3&]A9%-T<FEN9RA(24Y35$%.0T4 :&EN<W0L(&EN="!U240L('=S7V-H M(" (" ("!R971U<FX .CI,;V%D4W1R:6YG02AH:6YS="P =4E$+"!B=69F M;F<H2$E.4U1!3D-%(&AI;G-T+"!I;G0 =4E$+"!W<U]C:&%R7W=?=" J8G5F M9F5R+"!W<U]S:7IE7W0 8V-H0G5F9F5R*0T*(" ('L-"B (" (" <F5T M=7)N(#HZ3&]A9%-T<FEN9U<H:&EN<W0L('5)1"P 8G5F9F5R+"!C8VA"=69F M97(I.PT*(" ('T-" T*(" ('9O:60 ;&]A9"A(24Y35$%.0T4 :&EN<W0L M('=S7VEN=%]T(&ED*2!T:')O=RAE>&-E<'1I;VY?='EP93HZ=&AR;W=N7W1Y M(&YO="!P;W-S:6)L92!T;R!L;V%D('-T<FEN9R!R97-O=7)C97, ;V8 /C(U M-BX 268 =&AA="=S( T*(" (" (" O+R!W<F]N9RP =&AE;B!N965D('1O M(&9I>"!T:&ES('1O('5S92!A=71O7V)U9F9E< T*(" (" ("!V86QU95]T M:&EN<W0L(&ED+"!S>BP =VEN<W1L7VYU;5]E;&5M96YT<RAS>BDI*0T*(" M;W!E<F%T;W( /2AS=')I;F=?=')A:71S7W1Y<&4Z.F5M<'1Y7W-T<FEN9R I M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M('L-"B (" (" <'5B;&EC. T*(" (" (" (" +R\O(%1H92!E>&-E M<'1I;VX ='EP90T*(" (" (" (" ='EP961E9B!E>&-E<'1I;VX ("!T M(" (" (" >PT*(" (" (" (" (" (&-H87( (" ;65S<V%G95LQ M=%]N<U]Q=6%L7W-T9"AE>&-E<'1I;VXI*&UE<W-A9V4I.PT*(" (" (" M<W1?;69C<W1L7W)E<V]U<F-E7W-T<FEN9RAU;FET=&5S=%]R97!O<G1E<B J M;FET=&5S=%]I;FET:6%L:7-E<CL-" T*(" (" ("!S<U]B;V]L7W0 (" M(" (" (" ("!B4W5C8V5S<R (" ](" =')U93L-" T*(" (" ("!U M;FET=&5S=%]I;FET:6%L:7-E<B ("!I;FET*'(L(")7:6Y35$PB+" B<F5S M8F%S:6-?<F5S;W5R8V5?<W1R:6YG/'-T;'-O9G1?;G-?<75A;%]S=&0H<W1R M8V5?<W1R:6YG/'-T;'-O9G1?;G-?<75A;%]S=&0H=W-T<FEN9RD^(')S;E]W M(" /2 ("TQ.PT*(" (" ("!I;G0 (" (" ("!I1V]O9" (#T (" M M,3L-" T*(" (" ("!F;W(H:6YT(&D /2 P.R!I(#P M"B (" (" >PT*(" (" (" (" <G-N7V%?=" (" <G-N7V%?,BAH M;G-T+"!I*3L-" T*(" (" (" (" :68H," ]/2!R<VY?85\R+FQE;F=T M:" I*0T*(" (" (" (" >PT*(" (" (" (" (" (&EF*"TQ(#T] M("!I0F%D(#T M(" (" (" (" (" <BT^<F5P;W)T*")R97-O=7)C92!S=')I;F< *&YU M;&P 97AC97!T:6]N*2!L96YG=& ;6ES;6%T8V 8F5T=V5E;B!!3E-)(&%N M9"!5;FEC;V1E(&EN<W1A;G1I871I;VYS(BP 7U],24Y%7U\I.PT*(" (" M(" (" (" (&)3=6-C97-S(#T M(" (" ('T-" T*(" (" ("!I9BAB4W5C8V5S<RD-"B (" (" >PT* M(" (" (" (" ='EP961E9B!B87-I8U]R97-O=7)C95]S=')I;F<\<W1L M<V]F=%]N<U]Q=6%L7W-T9"AS=')I;F<I+"!T:')O=U]E>&-E<'1I;VX^(" M("!R<WA?85]T.PT*(" (" (" (" ='EP961E9B!B87-I8U]R97-O=7)C M95]S=')I;F<\<W1L<V]F=%]N<U]Q=6%L7W-T9"AW<W1R:6YG*2P =&AR;W=? M/2!I1V]O9"D-"B (" (" (" ('L-"B (" (" (" (" ("!T<GD- M7W0 (" (')S;E]A7S(H:&EN<W0L(&E';V]D*3L-"B (" (" (" (" M(" (" <G-X7W=?=" (" <G-N7W=?,BAH:6YS="P :4=O;V0I.PT*(" M(" (" (" (" ('T-"B (" (" (" (" ("!C871C:"AS=&0Z.F5X M(" (" (" (" ('(M/G)E<&]R=" B<F5S;W5R8V4 <W1R:6YG("AS=&0Z M.F5X8V5P=&EO;BD 9F%I;&5D('1O(&QO860 :VYO=VX <F5S;W5R8V4 9G)O M=6-C97-S(#T M(" >PT*(" (" (" (" (" ('1R>0T*(" (" (" (" (" ('L- M"B (" (" (" (" (" (" <G-X7V%?=" (" <G-N7V%?,BAH:6YS M97-O=7)C92!S=')I;F< *'-T9#HZ97AC97!T:6]N*2!L;V%D960 :VYO=VX M:6YV86QI9"!R97-O=7)C92!F<F]M(%5315(S,B(L(%]?3$E.15]?*3L-"B M(" (" (" (" (" (" 8E-U8V-E<W, /2!F86QS93L-"B (" (" M(" (" ('1R>0T*(" (" (" (" (" ('L-"B (" (" (" (" M(" (" (" (" (" (" <BT^<F5P;W)T*")R97-O=7)C92!S=')I;F< M*'-T9#HZ97AC97!T:6]N*2!L;V%D960 :VYO=VX :6YV86QI9"!R97-O=7)C M92!F<F]M(%5315(S,B(L(%]?3$E.15]?*3L-"B (" (" (" (" (" M(" (" (" (" (" >WT-"B (" (" (" ('T-"B (" (" ?0T* M=&5S=%]R96=I<W1R87( (" =6YI='1E<W1?;69C<W1L7W)E<V]U<F-E7W-T M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PT* M"B (" (" +" ('-S7W1Y<&5N86UE7W!A<F%M7VL 6 T*(" (" (" ^ M8V5?<W1R:6YG/%,L(% ^(&-O;G-T("9S*0T*>PT*(" (')E='5R;B H<RYL M>7!E;F%M95]P87)A;5]K(%,-"B (" (" +" ('-S7W1Y<&5N86UE7W!A M*&)A<VEC7W)E<V]U<F-E7W-T<FEN9SQ3+"!8/B!C;VYS=" F<RD-"GL-"B M97)S*2!O9B!<8R!S+" \8CX\:3YN;W0\+VD^/"]B/B!I;F-L=61I;F< =&AE M>7!E;F%M95]P87)A;5]K(%,-"B (" (" +" ('-S7W1Y<&5N86UE7W!A M;BAB87-I8U]R97-O=7)C95]S=')I;F<\4RP 6#X M(&]F('1H92!C;VYT96YT<R!O9B!<8R!S+" \8CX\:3YN;W0\+VD^/"]B/B!I M;&%T93P ("!S<U]T>7!E;F%M95]P87)A;5]K(%,-"B (" (" +" ('-S M95]T(&-?<W1R7W-I>F4H8F%S:6-?<F5S;W5R8V5?<W1R:6YG/%,L(% ^(&-O M;G-T("9S*0T*>PT*(" (')E='5R;B!C7W-T<E]L96XH<RD *B!S:7IE;V8H M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M<&%C92!W:6YS=&P-"B, 96QS90T*?2 O+R!N86UE<W!A8V4 =VEN<W1L7W!R M;VIE8W0-"GT +R\ ;F%M97-P86-E('-T;'-O9G0-"B, 96YD:68 +RH 7U-4 M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O ,+R\O+R\O+R J+PT* ` end
May 21 2004
parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
Thanks!

I've just recently decided not to hard code strings anymore, and this is
coming in real handy...

 I've done it, and added in unit testing (and tested it!). Here's a sneak
preview.
 Note: It does work with UNICODE. I was blowing hot air. ;)
May 21 2004
parent reply "Matthew" <matthew.hat stlsoft.dot.org> writes:
Pleasure. :)

"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c8ludf$1ar7$1 digitaldaemon.com...
 Thanks!

 I've just recently decided not to hard code strings anymore, and this is
 coming in real handy...

 I've done it, and added in unit testing (and tested it!). Here's a sneak
preview.
 Note: It does work with UNICODE. I was blowing hot air. ;)
May 21 2004
parent reply "Ryan Ginstrom" <ryan ginstrom.com> writes:
I have just starting using stlsoft, and I like it a lot.

A note about basic_resource_string, though.

The Unicode version uses LoadStringW, but that function does not work on
Win9x.

Below my sig is a method I use to ensure that retrieving resource strings as
Unicode works on Win9x platforms, adapted from an MSDN example.

-- 
Regards,
Ryan Ginstrom
ryang gol.com

// Function name : resource2wstring
// Description     : LoadStringW returns NULL on Win9x, so we need this
workaround
inline wstring resource2wstring( const UINT uid, const HINSTANCE instance )
{
 UINT block = (uid >> 4) + 1;   // Compute block number.
 UINT num = uid & 0xf;      // Compute offset into block.

 HRSRC hRC = FindResourceEx( instance,
  RT_STRING,
  MAKEINTRESOURCE(block),
  MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL));

 if ( hRC == NULL )
  return wstring() ;

 HGLOBAL hgl = LoadResource(instance, hRC);

 if ( hgl == NULL )
  return wstring() ;

 LPWSTR res_str = (LPWSTR)LockResource(hgl);

 if ( res_str == NULL )
  return wstring() ;

 for ( UINT i = 0; i < num; i++)
 {
  res_str += *res_str + 1;
 }

 return wstring( res_str + 1,  *res_str );
}
Dec 11 2004
next sibling parent reply "Matthew" <admin stlsoft.dot.dot.dot.dot.org> writes:
"Ryan Ginstrom" <ryan ginstrom.com> wrote in message
news:cpgjpd$11ps$1 digitaldaemon.com...
 I have just starting using stlsoft, and I like it a lot.
Great! May I ask how/from whom you heard about it?
 A note about basic_resource_string, though.

 The Unicode version uses LoadStringW, but that function does not work
on
 Win9x.

 Below my sig is a method I use to ensure that retrieving resource
strings as
 Unicode works on Win9x platforms, adapted from an MSDN example.
Ok. I'll check it out, and have a think about it. Assuming it's the go, how would you feel about my incorporating this into a future release? Naturally your input would be suitably credited. Cheers Matthew
 Regards,
 Ryan Ginstrom
 ryang gol.com

 // Function name : resource2wstring
 // Description     : LoadStringW returns NULL on Win9x, so we need
this
 workaround
 inline wstring resource2wstring( const UINT uid, const HINSTANCE
instance )
 {
  UINT block = (uid >> 4) + 1;   // Compute block number.
  UINT num = uid & 0xf;      // Compute offset into block.

  HRSRC hRC = FindResourceEx( instance,
   RT_STRING,
   MAKEINTRESOURCE(block),
   MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL));

  if ( hRC == NULL )
   return wstring() ;

  HGLOBAL hgl = LoadResource(instance, hRC);

  if ( hgl == NULL )
   return wstring() ;

  LPWSTR res_str = (LPWSTR)LockResource(hgl);

  if ( res_str == NULL )
   return wstring() ;

  for ( UINT i = 0; i < num; i++)
  {
   res_str += *res_str + 1;
  }

  return wstring( res_str + 1,  *res_str );
 }
Dec 12 2004
parent reply "Ryan Ginstrom" <ryan ginstrom.com> writes:
"Matthew" <admin stlsoft.dot.dot.dot.dot.org> wrote in message
news:cpidmd$2sut$1 digitaldaemon.com...
 "Ryan Ginstrom" <ryan ginstrom.com> wrote in message
 I have just starting using stlsoft, and I like it a lot.
May I ask how/from whom you heard about it?
I actually heard about stlsoft a while ago (I have version 1.6.5 sitting on my hard disk), but just recently started using it after reading your to take a closer look at the library, and I'm very glad I did. There is lots of great stuff in there, and it actually works! <g>
 Below my sig is a method I use to ensure that retrieving resource
strings as
 Unicode works on Win9x platforms, adapted from an MSDN example.
Ok. I'll check it out, and have a think about it. Assuming it's the go, how would you feel about my incorporating this into a future release? Naturally your input would be suitably credited.
I don't mind all, but as I mentioned it is adapted from an MSDN example, not original. -- Regards, Ryan Ginstrom ryang gol.com
Dec 12 2004
parent reply "Matthew" <admin.hat stlsoft.dot.org> writes:
"Ryan Ginstrom" <ryan ginstrom.com> wrote in message
news:cpii35$30mp$1 digitaldaemon.com...
 "Matthew" <admin stlsoft.dot.dot.dot.dot.org> wrote in message
 news:cpidmd$2sut$1 digitaldaemon.com...
 "Ryan Ginstrom" <ryan ginstrom.com> wrote in message
 I have just starting using stlsoft, and I like it a lot.
May I ask how/from whom you heard about it?
I actually heard about stlsoft a while ago (I have version 1.6.5 sitting on my hard disk), but just recently started using it after reading your to take a closer look at the library, and I'm very glad I did. There is lots of great stuff in there, and it actually works! <g>
Well, that's because I use it a lot, I guess. It's a much easier task to create a library that works when its author uses it. ;-) The one Achilles heal for STLSoft is the lamentable documentation. I am hoping to get time to address that soon, but it's always dragging behind new components, and new sub-projects (of which I have three planned for release soon: ACESTL, DbSTL, XMLSTL)
 Below my sig is a method I use to ensure that retrieving resource
strings as
 Unicode works on Win9x platforms, adapted from an MSDN example.
Ok. I'll check it out, and have a think about it. Assuming it's the go, how would you feel about my incorporating this into a future release? Naturally your input would be suitably credited.
I don't mind all, but as I mentioned it is adapted from an MSDN example, not original.
Understood. Thanks again. Feel free to post requests/bugs/criticisms here, or email them to me directly. Cheers Matthew
Dec 12 2004
parent "Ryan Ginstrom" <ryan ginstrom.com> writes:
"Matthew" <admin.hat stlsoft.dot.org> wrote in message
news:cpin60$4mg$1 digitaldaemon.com...
 The one Achilles heal for STLSoft is the lamentable documentation. I am
hoping to get time to address that soon, but
 it's always dragging behind new components, and new sub-projects (of which
I have three planned for release soon:
 ACESTL, DbSTL, XMLSTL)
Documentation would be nice (as would a good XML parser/writer). I am no one to talk though, being rather poor at writing documentation myself. Luckily though, the various classes can generally just be dropped in and used without too much fuss. I just checked out the resource_string implementation because I have been bitten by this problem before. -- Regards, Ryan Ginstrom ryang gol.com
Dec 12 2004
prev sibling parent "Matthew" <admin.hat stlsoft.dot.org> writes:
Ryan

I've finally incorporated this. Sorry for the delay.

It'll be in 1.8.3 beta5, which will probably be sometime this week or next.
When you get a chance, it'd be great if you 
can check it out on 9x. I've tested it by 'pretenting' to be 9x on XP, but some
finite doubt remains until it's tested 
on a real 9x system.

Thanks again for the insight. I've mentioned you in the
(winstl_resource_string.h) file header, and also in the Doxygen 
stuff. I've amended the copyright to now say:

 * Home:        http://stlsoft.org/
 *
 * Copyright 1994-2005, Matthew Wilson and Synesis Software
 * Copyright 2004-2005, Ryan Ginstrom


Cheers, and thanks again

Matthew


"Ryan Ginstrom" <ryan ginstrom.com> wrote in message
news:cpgjpd$11ps$1 digitaldaemon.com...
I have just starting using stlsoft, and I like it a lot.

 A note about basic_resource_string, though.

 The Unicode version uses LoadStringW, but that function does not work on
 Win9x.

 Below my sig is a method I use to ensure that retrieving resource strings as
 Unicode works on Win9x platforms, adapted from an MSDN example.

 -- 
 Regards,
 Ryan Ginstrom
 ryang gol.com

 // Function name : resource2wstring
 // Description     : LoadStringW returns NULL on Win9x, so we need this
 workaround
 inline wstring resource2wstring( const UINT uid, const HINSTANCE instance )
 {
 UINT block = (uid >> 4) + 1;   // Compute block number.
 UINT num = uid & 0xf;      // Compute offset into block.

 HRSRC hRC = FindResourceEx( instance,
  RT_STRING,
  MAKEINTRESOURCE(block),
  MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL));

 if ( hRC == NULL )
  return wstring() ;

 HGLOBAL hgl = LoadResource(instance, hRC);

 if ( hgl == NULL )
  return wstring() ;

 LPWSTR res_str = (LPWSTR)LockResource(hgl);

 if ( res_str == NULL )
  return wstring() ;

 for ( UINT i = 0; i < num; i++)
 {
  res_str += *res_str + 1;
 }

 return wstring( res_str + 1,  *res_str );
 }
 
Mar 21 2005