/*
    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/11/06(Mon) No.081
    zMF 3870i Mag2 + Pubzine j
    sF ܂܂( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/

/*              QOOONPPUij̍XV                  */
http://www.kab-studio.com/

E\PPo[WɁI
@PAV\łB
@͂܁[܁[̏oȁBĂ[ƃy[XグȂƃ_ˁB
ڂ̓`[ʂȓLPPQBȂ݂ɍ
ǎo[W̓iVB

E Codian - STL ɒǉI
@Codian  STL Ƀy[Wǉ܂I
@́u STL & iostream v̒ STL  #06 - #09 ǉB
IuWFNg̓}ŉ܂BuŃNX̂
ςvƂȂňSI
[Codian]
http://www.kab-studio.com/Programing/Codian/


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

2000/10/29 (Sun)
@̃Xgbv͂B˔V[YEAP[ǧʔ\I@[
}Kɍڂ̃^C~O߂ijBϋɓIɎQ܂傤I

2000/10/30 (Mon)
@pXlbgI@[[ӎȊwĂijBƃ[~
̑|ƂB

2000/10/31 (Tue)
@TCt@Cn[AʔBuȂAjȂĂ[v
ƂvĂ񂾂ǁẢo̓AjłȂƖȂB
Ƃ邵߂Ƃ߂邵B

2000/11/01 (Wed)
@Codian ĕ\`ďAEOCāBȂ񂩖Z˂Bꂩ
AEOC邩炳ɖZȂ邵B

2000/11/02 (Thu)
@PP\I@ׂ`ĂŁu CG [[Qlɂ
킟vƂ[͓ǂł˂BɂĂhLX~ccB

2000/11/03 (Fri)
@Ö{܂ɍsĎQ܂BȂ[Aς[[
ŒT̂́uvȃACeȂ񂾂AɂȐlB̒ɕƎ
̂PlȂ񂾂ȁ[ƂȂ񂩂āB

2000/11/04 (Sat)
@Ȃ񂩔Ă܂̂łBlĂ̂˂BČÖ{
ŃjA~XBłݕ|lȊȂŐ|\ႢijB


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

2000/10/29 (Sun)
m点
Codian  iostream #06 ̓~X
ւ
CListCtrl ŃhbOőIł悤ɂ@́H
ftHgłłƎv
זĂ̂

2000/10/30 (Mon)
ւ
VA|[gfoCX̑
GetCommState() Ȃǂgp
TvR[hւ̃N

2000/10/31 (Tue)
vO~O
ă}CN\tg Platform SDK _E[h@

2000/11/01 (Wed)
STL & iostream 傩 STL  #06 - #09  Codian 
AEOCŏ񏈗Q탌x̕׋
v̊O߂ɂȂ
vÕXLgɒ͔̂rIȒP
͏Zp͕Kv

2000/11/02 (Thu)
Xgr[̃\[g
X^CgĎI
xł\[gȂ
LVM_SORTITEMS  CListCtrl::SortItems() g
TvR[h
R[obN֐̍쐬
n̂u܂vȂ̂łЂƍHv
u܂vCfbNXio[ɏ
Sz񓙂ɓĂ\[g@

2000/11/03 (Fri)
ւ
uOV{vNG[
֐{̂Ȃ
Cut@Cݒ肵Ă邩
VC ̃o[WÂ̂

2000/11/04 (Sat)
x


/*             vO~OET̒ǉP                 */
http://www.kab-studio.com/Programing/Dictionary/

EǉPF
zbggbLO NXCu #ifdef QƃJEg Xbv 
Xbvt@C z L X^hA[ oCgR[h
^O Cq IntelliSense OS WNDPROC 

ET̏󋵁F
@Ă goo ̃f[^x[Xɕ֌WŁAꂩ甚IɒPꐔ
ȗ\B[AĂ͂ꂩAEOCƂłȂZ
ƂɂȂ肻ccƂ킯ŁA玫̒Po^̊
x~邩ȂBSB


/*                       ؂̗JT                           */
http://www.kab-studio.com/Programing/KanaU/

ev[g
#01 ֐ev[g

@ev[gB߂Ďĝ́A MFC  CArray Ǝv
B̍́ű@\v̂A STL gn߂ƂŕK{̃A
CeɂȂ܂BɎ C++ I[Ȃ̂́Aev[g
邩ƌĂߌł͂ȂƎv܂B񂩂́Ãev[g
ɂďЉĂ܂B
@܂Aev[gɂ́u֐ev[gvƁuNXev[gv
܂Bŏ́AȒPȁu֐ev[gvɂČĂ܂
B
@֐ev[g̗Ă݂܂傤B

template< class type_numeral >
type_numeral Increment( type_numeral p_num )
{
    ++p_num;
    return p_num;
}

@ʂ̊֐ɌꂽɂƂẮAȂ蕪ɂˁB֐
O template ĕtĂ̂A֐ev[g̏؁B̊֐ev
[ǵÂ悤Ɏg܂B

void Use_Increment_int()
{
    printf( "%d\n", Increment( 100 ) );
    // 101
}

@܂Å֐ev[ǵulCNgāA߂l
ƂĕԂvƂ@\Ă܂B
@łꂾƁÅ֐ɂȂĂ܂܂B֐ev[g
Ƃ́Ǎ^ƂĂgƂ_łBƂΎƂB

void Use_Increment_double()
{
    printf( "%f\n", Increment( 10.5 ) );
    // 11.500000
}

@ƁAł̊֐͎gƂłAƃCNgł
܂B̓_番ƂAev[g̋@\́ulXȌ^gp
łvƂ̂łBT͂̎dg݂ɂāBˁB


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
w炵[A\Ix
uȂŏHȂ̂ɔȂ́Hv
wȂā[A[AHȂ񂾁AĊx
uŏĂAzႤ킯ˁv
wˁ[AIx
uȁAȂɁHv
w\ɂȂȂĂЂłł[x
uĂ[yccv
w̐lՂƂɂoĂȂˁccx
@؂\Ō͓LŃNGXgĂˁ[B
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

@Version 5.16 
API œǂݎI

w API Ńt@CANZXIx
uO̓t@CJ܂B͓ǂݍł݂܂BȂOɁv

    char chAllLine[1024];
    if( 1024 < GetFileSize( hFile, NULL ) )
    {
        TRACE( "t@C傫܂I\n" );
        CloseHandle( hFile );
        return;
    }

w GetFileSize()  F1 ƁAAt@CTCY𒲂ׂ̂Ȃ񂾁x
úqxɃt@CŜǂݍށrĂƂ񂾂ǁAǂ
ނ߂̃TCYPOQSoCgČ肵Ă邩v
w 1024 Đ͗ɂēKˁBAĂƂ chAllLine 
ϐɓǂݍނ񂾁x
u 1024 ̔zɂĂ邩At@CTCYȏ傫
Ɠ肫Ȃˁv
wccx
u char ЂƂPoCgv
w[x
uAzv
wHx
uA char ЂƂPoCgAPoCgЂƂP}XAꂪPOQS
ɕłAĂˁv
ŵˁ[BAzčlȂ񂾂ˁx
uzAPOQSoCg̗̈mہAĂƂŁv
wt@CAƓɂȂẮHx
uARs[^[̐Êׂ̂͂ăIƃItłłĂ邩
ˁB̃IƃItHv
wPrbgI@ꂪWłPoCgx
u烁t@CčlĂv
wŁA߂lɃt@CTCYԂĂ邩炻ꂪPOQS傫
ǂ`FbNˁB΁AQ́H@^ LPDWORD Ăւ
Ăǁx
u߂ľ^ DWORD łv
wAzgx
u܂ DWORD ɂāB API ^BOɁq API ̌^͂
t@CŒ`ĂrČˁv
w Wtypes.h I@Ver 5.08 ( No.073 ) łˁx
ûƂ LPCTSTR  typedef ĂĂ̂񂾂ˁB
 DWORD ̃t@Cɂ邩v
wIx

typedef unsigned long DWORD;

w[ƁA unsigned 畄iVA long ͂SoCgx
u܂SoCgiVlƂăt@CTCYԂĂĂ
Ƃˁv
wTCY}CiXȂ񂾂ˁx
uŁA LPDWORD 邩v

typedef DWORD __RPC_FAR *LPDWORD;

wA LPCTSTR ̂Ƃ̂Ɠ̂x
u悤ɁA __RPC_FAR ͋󔒂ɒu邩A܂v
w[ DWORD ̃|C^ˁx
u䂱ƁB܁A LP ɕtĂ|C^v
wccŁA|C^Ȃ͕̂ǁAȂłɓńHx
û|C^̎gɂłBϐ̃AhXnA
֐͂̃AhXgĕϐɃANZXłv
w̃AhXŒli[łI@߂l̑ɒlԂ@Ix
ut@CTCŶ[傫ƂɁA߂lႻ̑傫
\ȂÂ߂ɂЂƂlԂpӂĂ킯v
wꂪ MSDN ̃t@XɏĂqʃ_u[hrƂ
qʃ_u[hr̂ƁHx
uƁB[h͂QoCgTCYA_u[hłSoCgB
t@CTCY傫ꍇȀ̂SoCg߂lŁA傫
QԂdg݂ɂȂĂĂƁv
wȂŁq[hr͂QoCgȂ́Hx
û͂QoCgPԈʓIqPrTCŶBȂ݂Ɂv

typedef unsigned short WORD;

uĒ`Ă邩v
wA WORD ^ccx
uȂ݂Ƀt@XɏĂƂAzg͖߂l 0XFFFFFFFF
ǂ̃`FbNv
wƁAKvȂȂQ NULL nĂǁAŖ߂lɓ
肫Ȃ肷 0XFFFFFFFF ԂĂႤ񂾁x
u܁A unsigned  if Ɏs邱Ƃ͂Ȃ񂾂ǂˁv
w߂lɓ肫ȂTCYāHx
uiVSoCg̍őĺHv
w 4294967295 ccAꂪSMKȂ񂾁Błx
uȃt@CőɂȂĂƂłł͏Ă邯ǁAdp
炿ƃG[`FbNv
ẃ[BŁAł chAllLine POQSoCg炻ȏȂ
֐IˁBA CloseHandle()  fclose() ݂Ȃ́Hx
uA CreateFile() ŊJt@C CloseHandle() ŕȂ
_v
w fopen()  fclose() ƓĂƂˁx
uƂ킯Ńt@CTCY̊mFAɃt@CŜǂݍ
ł܂܂v

    DWORD dwReadedSize;
    BOOL bRes
        = ReadFile
            ( hFile, chAllLine, 1023
            , &dwReadedSize, NULL );
    if( bRes == 0 && dwReadedSize == 0 )
    {
        TRACE( "t@Cǂ݂Ƃ܂łB\n" );
        CloseHandle( hFile );
        return;
    }

w܂ЂƂ API ĂԂ̂ɂSsĂccx
uR[fBOX^C͂At@XƌׂĂ݂āv
wƁAP͂񑩂̃t@CnhAQ́A
POQSoCgTCY̔zAɃf[^󂯎񂾂ˁx
u API ňCɃt@CŜǂݍ񂶂ႤȂOɃ`Fb
NKvv
wR 1023 ͌ETCYBꂪȂ炳TCỸ`Fb
NKvȂ񂶂ȂHx
ut@Xɂ͂̕ӏڂĂȂAÔ߂ĂƂŁv
wӁ[BŚccAhXnĂˁx
u͂̂ƂقƂǓB^ LPDOWRD łv
wzgBt@Xɂ́qۂɓǂݍ񂾃TCYrďĂ
ˁx
uŎgB܁A GetFileSize() ̖߂lgĂ
ǂˁv
wӂƎv񂾂ǁA̕ƂAR̃TCYƂĂSMK
łwłȂA炳̂ȃt@C̏ꍇɂ
ǂ΂́Hx
u|C^̃TCÝHv
wSoCgx
uĂƂ́Amۂł郁̗̈SoCgĂƁv
wccĂƂ́Âłt@C̎āAɑSRs[
ȂĂƁIHx
uȂˁBꍇɂ́At@C班oď
ĂƂɂȂ邩ȁv
ẃ[A߂ǂ[x
umɖʓ|ǁÂ炢傫ȃt@C𑀍삷ĂƂ͂
̎dA~XȂ悤ɃvOȂƂˁv
wȂ񂩂ccx
uŌ̈́AʂȌ`Ńt@CJƂ̂̂ 
NULL v
w߂lƁÁqǂݍ񂾃TCYr`FbN̂ˁx
uĂ΂ǂOȊOԂĂ邩ˁBĂ chAllLine
Ƀt@CŜ܂邲Ƃ̂܂܃Rs[邱ƂɂȂ܂v
wt@Cs CloseHandle() ccāÂx
uʓ|ȘbȂ񂾂ǁAɃG[pɂɏoĂ鎞ɂ́A
np̏̓sxĂ΂ȂႢȂ񂾂ˁv
wAzgAƂQoĂĂIx
u̓^C fclose() gv
wĂƂ́AȊȌꍇ͂ĂƁHx
uA iostream  MFC ̏ꍇɂ́qNXrgĂłv
w std::ifstream  CStdioFile ˁx
uNXɂ́qnKvȂƂɎIɊ֐ĂяoVXer
ĂāA𗘗păt@CĂ邩v
w炻̓sx㏈ȂĂ񂾁x
uǊ֐̃^C API ͂ƂłȂA
ӂɂȂႢȂ񂾂ˁv
w[AłȂƂ@ƂȂ́Hx
u邱Ƃ͂BƂΊ֐ɂ܂Ƃ߂Ƃv
wǂ䂱ƁHx
u CreateFile() ̂Ƃ̏֐ɓ@BŁA֐甲
 CloseHandle() 悤ɂv
wHx
uG[͂ return 悤ɂ΁A return Ă֐
甲Ƃɕ悤ɂȂłv
wAǂ̃G[ return ĂԂ񂾂ˁx
uA͂B܂㏈镔փWv΂킯v
wNX́q㏈@\rAȊˁx
uŁAWv邽߂̍Ō̎iA goto v
w[[Hx
uBƂ΁AƂsɁv

LABEL__CLOSE:

uďĂ܂BŁAG[̎Ɂv

    goto LABEL__CLOSE;

uĂƁA LABEL__CLOSE ܂ňCɔԂƂł܂v
wց[Aȕ֗ȕ񂾁x
ułAg_v
wIHx
u goto  for Ƃ̗ႮɂႤAłg
Ȃ悤Ɂv
wȂȂŋ̂`x
u̐l̃vOǂނƂɍłv
w܁[Ⴛǁx
uƂ肠̂́A̓sxG[ˁv

/*
    Preview Next Story!
*/
w API ĕGˁ[x
uAł API ȂHv
w炻Ȃ́x
uł̂ƂɕGɂȂ邯ǁv
wC[IIx
uƂ킯Ŏv
 Version 5.17 iostream ŕ񑀍I 
wɂÂIx
uƂ킯 std::strstream oꂵ܂v
w܂ STL & iostream ̓oˁ[x


/*            QOOONPPPRij̍XV\              */
http://www.kab-studio.com/

E Codian - iostream ɒǉI
@Codian  iostream Ƀy[Wǉ܂I
@́u STL & iostream v̒ iostream  #07 - #10 
B}łI


/*                          Ӂ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!!                      */


