
/*
    KAB-studio.h
        @j`a|ŐTXVe
        i[ꂽwb_[t@Cłi΁jB

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    MF 2000/06/12(Mon) No.061
    zMF 3730i Mag2 + Pubzine j
    sF ܂܂( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/


/*              QOOONUPQij̍XV                  */
http://www.kab-studio.com/Info/News/

EKAB-studio.h kōXVB
@ KAB-studio.h UOɂȂ̂ŏkłXV܂B
@A KAB-studio.h ̃A[JCut@C KABh02.lzh ƂO
V܂BŁA񂪂炪błA #pragma twice ݂̂̃A[
JCut@C͂܂ł PraT01.lzh ƓłB
@vɁA KAB-studio.h ͂O`TOƂTP`UÔӂɕāA 
#pragma twice ͂O`UO܂őSЂƂ܂Ƃ߂ƂƂłB 
KAB-studio.h ͂ꂩ炩Ȃ蒷ԑĂ\łA #pragma 
twice ͑SPTO񂭂炢\肵ĂƂ^CXPW[ɂ
̂łB邩܂񂪌䗹B
@et@C̃_E[h̓t[EFACtH[V[ɂāB

[t[EFACtH[V[]
http://www.kab-studio.com/Freeware/


/*                        `[ʂȓL                        */
http://www.kab-studio.com/nikki2/

2000/06/04 (Sun)
@тA厸ԁI@Ɩ̃t^𗎂ƂĂ܂܂ijBϔ
Ă̂ȁ[B

2000/06/05 (Mon)
@ŋߒŋA邱Ƒȁ[BvX̂bll^Błܐオ
i΁jBĂbr̊COj[XB

2000/06/06 (Tue)
@NTTC^[lbg̉АBȂrdĂƂȁ[B
vX̃Q[Bč̊COj[Xԑg̑B

2000/06/07 (Wed)
@N͖KoK[mĂ邩IH@܂Ał
ijBƖP Access Statistics BLЎЈpĂ
ԃX^ijB

2000/06/08 (Thu)
@ԃX^̃ANZXÓAFXƖ肪Ƃ[bBANZX
LÓuڈvˁB菭ȂƂ͌ȂB

2000/06/09 (Fri)
@[~SBp󂵂肵Ă[ρBނB

2000/06/10 (Sat)
@ԃwb_[֌WƁAerXBccB


/*                         L̗JT                             */
http://www.kab-studio.com/Programing/KabuU/

2000/06/04 (Sun)
x

2000/06/05 (Mon)
񗝘_̎

2000/06/06 (Tue)
x

2000/06/07 (Wed)
M_̎
֊֐
ǵuv𒲂ׂ
g`炵d˂Ă̑𒲂ׂ
߁X|[go鎖ɂȂ邩
vOg܂Ȃ

2000/06/08 (Thu)
x

2000/06/09 (Fri)
x

2000/06/10 (Sat)
M_̃vO
f[^`ŏ܂Ăt@Cǂݍޏꍇ
STL  iostream gꍇɂ́H
uƂтƂт̒lv悤ɂ
uӂǂݎCe[^[NXv낤Ƃč
ėpɌE
reverse_iterator Ɠ
uCe[^[̗vf̌^v擾@ɖ
uev[gvΉ̖
STL gƂ͔ėp厖ɂƂ


/*             vO~OET̒ǉP                 */
http://www.kab-studio.com/Programing/Dictionary/
iUt܂ōXVx~܂A䗹j


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
w STL & iostream ̂PǁA܂Ȃȁ[x
uˁA̕ӂ̂ƉΔɋ̂͂܂悩v
wAłĂ炤悩ǁx
@悭ȂȂ͍wǓo^B
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

@Version 4.11
|C^ƃLXg

uO񂵂ƂxKIv
wƁA܂ϐ̓ɒuĂāA̕ϐ̏ꏊ̂A
hXŁAAhX邱ƂłϐA|C^Ix
u厖ȂƂ́Hv
w|C^̒ɂ̓AhXĂI@ˁx
uƁv
wŁA|C^́A * ŃAhXwϐ邱ƂłA
ZZŁqƂȂr邱Ƃł肷Aˁx
uA|C^̃TCYňړʂ܂邩B̕ӂ𓥂܂A
ɐi݂܂B܂͂̊֐v

void MovePointerWithSquareBrackets()
{
    int i = 100;
    int *pi = &i;
    TRACE( "%X\n", pi );    // 64F530
    TRACE( "%X, %X, %X\n", pi[0], pi[1], pi[2] );    // ɁijB
}

wH@̑ÔɎĂˁx
uO MovePointer() ƍŏRs͓BŌ̂SsڂƈႤv
w܁[Ƃ肠Ă݂܂[B́x

0064F530  64 00 00 00 8C F5 64 00 32 33 40 00 2C F8 64 00 C0 01 52 00

wĂȂĂāASsڂ̏o͂͂Ɓx

64, 64F58C, 403332

wÁAS}Xŋ؂Ɓccx

64 00 00 00 
8C F5 64 00 
32 33 40 00 
2C F8 64 00 
C0 01 52 00

w݂ǍʂƈꏏIx
uI@ĂƂ͂܂Hv
w܂A pi[0]  0064F530 ̒lɂȂāA pi[1] ̎ 0064F534
ɁA pi[2]  0064F538 ɂȂĂ񂾂ˁx
uĂƂ́Hv
wĂƂ́A pi[0]  pi A pi[1]  pi + 1 A pi[2]  pi + 2 
ĂƁHx
uɂI@mɂ́v

pi[0] : *pi
pi[1] : *( pi + 1 )
pi[2] : *( pi + 2 )

wA [] ɂ * tĂ̂Ɠ@\tĂ񂾁Ix
u [] ̓|C^gē̃AhX̒loƂɕ֗v
w킴킴 * ƂtȂĂ񂾂ˁx
uƁA [] gƓɁqƂȂ̒lrƂĕ͋Cołv
wooA pi[2] ƂāqQԖڂ̒lrĊ́Bۂ
x
u̕ӂIɕΌ\vȁv
wvIx
uāAƒr[ȂƂł܂Ƃ߂邯ǁA|C^̓ȓ_
͎̂R܂v

PF * ZqŃAhX̒lɃANZXłB
QF |C^ւ̑́u|C^̌^̃TCYv̂ԂsB
RF [] Zqŏӂ̋@\𓯎ɎsłB

u *  [] ͕ʂ̐^A܂ int ƂgȂƂɒӁv
wꂪqAhX͐ǃ|C^ɓȂႢȂr킯Ȃ
x
u|C^̓_̂ЂƂ́ẢZqʂ̐l^ƈႤ
_B̓ȕ܂良Ăāv
włȓȂ悤ȁccx
uȂSBꂩ܂Ȃ邩v
wx
uł͂̊֐v

void BadCast()
{
    int i = 100;
    short *psh = &i;    // G[B
}

wIH@int ̃AhX short ̃|C^Ȃ񂩂ɓ́H@
AG[oȂ񂾂ˁx
uAȃG[o܂v

error C2440: 'initializing' : 
@'int *'  'short *' ɕϊ邱Ƃ͂ł܂B
@wꂽ^͊֘A܂; ϊɂ reinterpret_castA 
@C X^C LXg܂͊֐X^C̃LXgKvłB

uqȂƁrꍇɂ́qLXgrKv
܂v
wLXgHx
u^Ǎ^ł邩̂悤ɖ邱ƂqLXgr
Ă܂BLXg͂Ȃӂɂ܂v

void CStyleCast()
{
    int i = 100;
    short *psh = (short *)&i;
    TRACE( "%X, %X\n", &i, psh );    // 64F530, 64F530
}

wA (short *) Ă̂ˁAꂪLXgHx
uB &i  int * ^B𖳗 short * ^Ɍ̂
(short *) Bqς^JbRň͂ށrĂˁv
wʌƁA^ςŃAhX͕̂ςȂ񂾂ˁx
uA|C^̓|C^ˁB int *  short * ͓|C^
ǁAAhX̂ϐ̌^ႤAĂv
w|C^̓|C^AAhX̓AhXAˁx
ułg_Iv
wIH@[Ȃŋ̂x
uÂ@ł͈ʓIAƂ肠gȂƂȂv
w̑O #define ݂Ȃ̂ĂƁHx
uƁB́A̕@g܂v

void reinterpret_cast_Cast()
{
    int i = 100;
    short *psh = reinterpret_cast< short * >( &i );
    TRACE( "%X, %X\n", &i, psh );    // 64F530, 64F530
}

wH@ reinterpret_cast ĂǂŌ悤ȁccx
ũG[\ɏoĂˁv
wAȂāccI@Ver 3.5 i No.30 jŌIx
uI@A΁ccv
ŵƂ́ccx

    hWnd = reinterpret_cast< HWND >( 0x00000758 );

wAnh 0x00000758 ĐA HWND ^̕ϐɓ
ƂɎg񂾁BH@ĂƂ̓nhāccAhXHx
uB͂Ȃ񂾂ǁA͂܂xv
wccȂ񂩋鏇ԂȂHx
uA܁[xƋ邩v
w͂͂BƂɂȂӂɋĂĂ邯ǁx

reinterpret_cast< ϊ̌^ >( ϊl )

wx̂Hx
uAB &i  int * ^B𖳗 short * ^Ɍ
̂ reinterpret_cast< short * >( &i ) B͏̂悤Ȋv
w̕@ȀJbR̂肢RāHx
u₷ĂƁv
w₷Hx
uJbŔ̕A֐ƂZƂłgLXgĂ镔
ɂ񂾂ǁv
w reinterpret_cast ̓LXgp̂猩₷Hx
uBLXgāAȂƂA𔭐
₷񂾂ˁB猩₷ĂȂƂȂv
w͊mɁx
uɁAJbR̂͂Ȍ^ɃLXgł邯 reinterpret_cast
̓|C^݂łLXgłȂv
wȌ^Hx
uAꂩ炢ȃLXgĂKv邩ˁB
ꍇɂ́q|C^֌W̃LXgrłȂ reinterpret_cast ̕
Sv
w܂oASux
u͂邳Ăˁ[BہA|C^֌W͖o₷
v
wȂ́Hx
u̕ӂ߂āA short ̃|C^ɂČĂ݂悤v

void CastAndShow()
{
    int i = 0x89ABCDEF;
    short *psh = reinterpret_cast< short * >( &i );
    TRACE( "%X, %X\n", psh[0], psh[1] );
}

wPsڂ 0x89ABCDEF ɂȂĂBŁAQsڂ͂ȂŁARsڂ͂
 short ̃|C^gĒlĂ񂾂ˁx
u psh[0]  psh[1] ̃AhX́Hv
w psh[0]  &i ƓłB psh[1] ́ccH@SoCg
ȁAQoCĝȁx
uQoCgłBŁAʂ͂Ȃ܂v

FFFFCDEF, FFFF89AB

wHHx
uA TRACE() ܂\ĂĂȂǁAۂɂ͂
ˁv

CDEF, 89AB

wāA i ̍ŏQoCgƂƂQoCgHx
uƁB܂A short ̃|C^gĂƂɂ́A short
ƂĈĂƁv
wǂ䂱ƁHx
u܂QoCgTCYŔfĂƁBAhX̑Qo
CgA short ЂƂ߂̈QoCgv
w܂A int ^Ă͖̂ꂿĂ񂾁x
uA厖I@āAۂɂ͑SR؂ĂȂĂƁB
PɃf[^uĂ邾v
wāA̋؂߂̂A^ĂƁHx
uƁB^ď߂āÂ̗̈悪qӖ
r肳킯BƂ΂̌ʁv

CDEF, 89AB

uAEpȂĂ int ɂ͂ȂȂłv
wzgBoCgI[_[̂Hx
uBɂ EF CD AB 89 ĕłłB int ̕сB
short ͂Q}XāA̒ōEւ邩 CDEF  89AB 
Ȃ킯v
w̃f[^ƂɁA int ŌƂ short Ō̂Ƃ̈Ⴂ
o킯BႤƁAmɃLXgĕ|ˁ[x
ułLXg|C^邩炱AɒɐG
ȑł񂾂ˁv
wl邩B[[̂q݂ȂrĂƁHx
uƂˁv

/*
    Preview Next Story!
*/
uq݂Ȃr͂ꂩςoĂ邩Ao傷悤Ɂv
wււx
uhAȂ񂩑ԓxȂHv
w󂿂񂪂݂ȂĂ邾x
uAȂ̂Hv
whqĥ|̂AFAȂĂ邾Ȃ̂x
uƂ킯Ŏv
 Version 4.12 const ^̃|C^ 
wɂÂIx
uႠΔ̖̔тςȂ̂Hv
wƁARȂĂ邾x
uiЂ˂Ă̂K̂Hv
w[JcNIIx


/*                       ؂̗JT                           */
http://www.kab-studio.com/Programing/KanaU/
i݋x~łA䗹j


/*            QOOONUPXij̍XV\                */
http://www.kab-studio.com/Info/News/

E\ȂB
@悢ĖZȂĂ܂BUt͂Ȃ炢ccB
Ă[UɏÎHij


/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
EvO~OɊւ鎿[L̗JT]ɂ肭B
http://www.kab-studio.com/Programing/KabuU/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
http://www.pubzine.com/detail.asp?id=000590
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */


