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

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

E Codian - iostream ɒǉI
@Codian  iostream Ƀy[WǉI
@́u STL & iostream v̒ iostream  #05  #06 
B std::strstream ł̃|C^ɂĂłB}A
}Kł͊ԈĂςĂ܂B
[Codian]
http://www.kab-studio.com/Programing/Codian/


EKAB-studio.h kōXV
@[}KW KAB-studio.h WOɒB̂ŏkłXVI@
ߓǂݎn߂ɂ߁BāAŋߍwǓo^SRĂȂł
ǁijB
@_E[h̓t[EFACtH[V[ɂāB
[t[EFACtH[V[]
http://www.kab-studio.com/Freeware/


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

2000/10/22 (Sun)
@˔ESAP[gX^[gII@oJȊ悾ijBǎ
Q^݂ȗĂˁ[BƂ̓erFXB

2000/10/23 (Mon)
@MeBMAwI@ɂłQ[}[Yɂ܂Bσv
XeȂijBđ엘ӂсB

2000/10/24 (Tue)
@MeBMA܂񂪂̐ݒ`B܂񂪂͂Ƃ{C
BɂĂĂđΐiDˁAƂ[bB

2000/10/25 (Wed)
@[~ NT T[o[̃ZbgAbv`ɍsB[ɗ
ijBmȂ炵[Ȃ˂B

2000/10/26 (Thu)
@̓sAm^сBȂ񂩖\Ⴄ푗Ăȁ[BĂ
񂪑剤QOB

2000/10/27 (Fri)
@͂ς܂񂪑剤QLOł傤B}WʔāB
Ƃ肠IԂ炢́BƂdqʔB܂񂪂Ă
ˁB

2000/10/28 (Sat)
@ςȖBĂ͌\ĂȂŁAɖLNZt
炻ꂾŃxXgZ[xXgZ[H@ƃerFXBpꂹ
˂΁BȂẮupłȐlvɌ邱ƑccB


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

2000/10/22 (Sun)
AEOC
UNISYS ́uvO~O̊bvƂ CD-ROM
݌v@t[`[gɂ
ˑ
 VB
񏈗Q탌x̕
ÂƂmȂƂȂ

2000/10/23 (Mon)
ւ
Active X ̖{
Inside OLE 
C MAGAZINE 
COM ́uNXvOCv̎@̂ЂƂ
z֐֐|C^̑Ɏg
COM ƓVXeĂ݂Ƃ

2000/10/24 (Tue)
x

2000/10/25 (Wed)
ւ
UNICODE Ńt@Cǂݍ
TvR[h

_T( ) }Ng
OS ɂĂ͎gȂ\
\@
oCi[ŔׂĂ݂̂
ւ
SDK ł̃bZ[WM
ControlBar ĂRg[
[U[`bZ[W CWnd::WindowProc() y
WM_USER ̒l͌߂Ă
ʃAvɕ𑗂͖̂ʓ|

2000/10/26 (Thu)
ւ
UNICODE ̖
CArchive.ReadString()

2000/10/27 (Fri)
x

2000/10/28 (Sat)

Windows Template Library 


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

EǉPF
ACM ANSI BNF dynamic_cast EBNF ID LALR \ LL \ 
LR \ MCI WTL Cxghu Ӗ I[g}g ~
L[[h ꏈ \ R[h RpEh ċA~ ʎq
 ㏸ ԑJڐ} K\ OQ rh t@CTCY
ubN\ xN^[ LԃI[g}g \ 

ET̏󋵁F
@͂ROPȏǉ܂BđPꐔ 601 ɁI
ł͂ƔꂽijBPꐔȂB


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

const o֐
#12 NX݌v const o֐

@C++ ŃvOgޏꍇɂ́A܂NX݌vɂƎv܂B
IuWFNgw݌vgĐ}āANXĎB
@ const o֐𓱓邱Ƃ́AłB const 
o֐͎ɑ傫ȉe^ƓɁAVOlC`[ƂĂ
ȂႢȂA܂݌viKƎiK̗ɉe͂񂾂
A݌v܂ĂƂs\ɂȂႢ܂B
@ȂĂƁA const o֐gƂ́AIɕs\A
ĂƂɂȂ܂BɉlŃvOgޏꍇƂA݌vƎ
ʂ̐lꍇƂɂ͂ǂ悤ȂȂ܂B݌v߂܂
ς邩A mutable ̗ɂȂ邩BǂɂĂAʂ͖ڂɌ
܂B
@ł const o֐̃bg͌vmȂ̂ˁB 
const o֐āA const |C^ const QƂg
ƂŁAoϐ͈͂߂邱Ƃł邩Af
obOƂɂ̂yɂȂ܂BvO傫Ȃ΂Ȃ
قǁÃbg͂B C++ gȏA const o֐
gȂ͂Ȃł傤B
@ const o֐݌viKȂg@΁AƎv
񂾂ǁA͓ȁBƐElIȋZpKvɂȂ肻B
gA̖ɂ͓ĂȂԁB
@ccǁA_ƂẮu const o֐͎ĝvĂ
ƂɂȂႤȁBgĂl͏ȂA C++ ɂȂB
łÃbglƁÂĂȂ̂̂ˁB
@AЉ܂ˁB
@T́A C++ ɂȂ͓IȁAł܂gĂȂ
ЂƂ̋@\Aev[gɂďЉĂ܂BˁB


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
wȂ񂩐Vn܂݂ˁ[x
uAP[gAĂ͂΂n݂ǁv
w[ȂɂȂɁAqڂ̑OɗH삪I@̂ƂȂ́HrHx
uĺv
wq͂ɂ`rƂEx
uȁAȂɁccv
wρquAAIrł傤x
uĂƂ܂܂ĂȂłv
wdq̂ɂƂċLʂł̔N͈ӖȂ̂Aӂӂx
u̎́qeXgITOI@̂ƂȂ́Hrāv
w[[ƂĂނ[ɃgCȂȂHx
uȉ񓚂͂Ȃǁv
@Ƃ킯ŁAȂ[悤II
http://www.pubzine.com/detail.asp?id=590
_______________________________________________________________[KCM]


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

@Version 5.15 
API Ńt@C

uƂ킯ŁA API gēǂݍł݂܂v
w iostream Ƀ^C MFC AƂǂ߂ API ˁx
uAȂ₱o傷悤Ɂv
wx
u܂ȂO MFC ̗݂ɁA CFileTestDlg::OnBtnShow() ̍ŏ
̕ɃvOāA return ŏIāÂƂ iostream
̃vOĂ`ɂ܂v
w MFC ͍̂폜Ⴄ̂ˁx
uƁBŁÂ悤ȃvOŁv

void CFileTestDlg::OnBtnShow() 
{
    // t@CJ܂B    
    HANDLE hFile
        = CreateFile
            ( "Data.txt", GENERIC_READ, 0, NULL
            , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
    if( hFile == INVALID_HANDLE_VALUE )
    {
        TRACE( "t@CȂI\n" );
        return;
    }

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

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

    std::istrstream cStrStrm( chAllLine, dwReadedSize );
    while( !cStrStrm.eof() )
    {
        int i;
        cStrStrm
            >> i;
        if( cStrStrm.fail() )
        {
            TRACE( "lȂł\n" );
            CloseHandle( hFile );
            return;
        }
        char chDest[256]; 
        sprintf( chDest, "%d", i );
        m_cDataLstBox.AddString( chDest );
    }

    CloseHandle( hFile );

    return;
// ȉA iostream ̃vOĂ܂傤B

wȁAȂ`IIx
uzgA˂Bli API Ńt@CĂȂA
ȒPɂ@̂ȁ[Ƃ͎v񂾂ǁAꂪEv
wȂȁ[x
ułAvȌW܂Ȃ͓̂BƂ킯ŏ
Ă܂傤v

    // t@CJ܂B    
    HANDLE hFile
        = CreateFile
            ( "Data.txt", GENERIC_READ, 0, NULL
            , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
    if( hFile == INVALID_HANDLE_VALUE )
    {
        TRACE( "t@CȂI\n" );
        return;
    }

wA̃t@CJƂłBł CreateFile() āAt@C
ẮHx
uA CreateFile()  API ̓t@C邱ƂȂ
JƂł邩BӖIɂ́qt@C𑀍삷邽߂̂̂r
člv
wȂ񂩕Gx
u CreateFile ̎̂Qsv
wЂƂ߂͊Jt@CłAӂ߂ CFile::modeRead Ƃ
tOˁx
uA̕ӂ MSDN  CreateFile() ̃t@XɏĂ邩v
w`H@ςƓǂ񂾂ǂނIHx
u͊mɂˁccB܁Aő܂ɉāAt@XŃtO
̈Ӗ𒲂ׂA炢Ɏgȁv
w񂻂[B݂߂́ccLHx
ũt@CJĂԁÃAṽt@CJȂ悤
ɂ邱Ƃł邩B̂w肷tOɓn܂v
w͂䂱ƂȂ 0 ˁB̎qvZXāHx
u͓pXv
w NULL nƁBQsڂ OPEN_EXISTING ̓tOۂˁx
ü̓t@CȂƂɂǂ邩߂tOB 
OPEN_EXISTING ́qt@C݂ȂG[rɂtOv
w CREATE_NEW ƐVAAȂqt@Cr
Ȃ񂾂ˁB FILE_ATTRIBUTE_NORMAL tOˁx
u̓t@C̏ԁBBt@CƂǂݎpƂAt@
CtH_ŉENbNďo郁j[́qvpeBr̂ˁv
w[AꂩB FILE_ATTRIBUTE_NORMAL ͕ʂ̃t@CĂƂˁx
uŌpXv
w NULL B́qrĂǂȊɓ́Hx
u̕ӂ̂́qEBhEY̋@\rɐ[ւĂ镔BEB
hEYVXe𗝉͓̂ˁv
w[[Ȃ񂾁x
u͈ȏB߂l HANDLE ^v
w̌^́BAnhČEBhEnhƂ
̂ˁx
uƓBqt@C𑀍삷邽߂̂̂rČ
łB𑀍삷邽߂̃nhԂĂčl΂ȁv
włA HFILE ^ƂȂHx
uꂪȂ񂾂ˁBt@XΕ邯ǁA CreateFile() 
t@CȊÔJ邩Â߂ HANDLE ^Ă܂Ȍ^
gĂ񂾂ˁv
wccăoȂHx
uȂ܂ˁB API  OS n[hEFAׂ̍삪
悤ɐ݌vĂ邩炱ȂĂ񂾂ǁA̕g
܂ƂɂȂˁv
ẃ[AȂ񂩕|ˁx
uȘbA API Ńt@C삷@Ă邯ǁA
C++ ܂ł API łȂقˁv
w͂ˁ[AgƂԈႦĂ|x
u܁A͌Ă󂷂炢ȂƕȂƂ邯ǂˁv
wƂ񂾁x
u܁[ˁBŁAb߂Ƃ̖߂l HANDLE ^gāAꂩt@C
𑀍삵Ă܂B̂ˁv
w^CgƂ̃t@C|C^I@ fopen() ̖߂l
ˁx
uBŁAt@CĴɎsĂ INVALID_HANDLE_VALUE
ĒlԂĂ邩v
w if Ń`FbNˁx
u̕ӂ^CƓˁBAČAŏ̃v
O̍Ō̕ɂ̍słv

    CloseHandle( hFile );

w fclose() ƓHx
uƁB API ֐A킴킴ӂɃt@C
Ȃ_v
wNXȂ炻ƂȂĂ񂾂ˁx
uNXɂ́qIɊ֐ĂтĂ@\r邩Å
̒ŕ΂ˁv
wcc[ƁAIx
u͂Δv
wԂႯbAȂ API ƂȂ߂ǂ́Hx
uƐGꂽǁA API  OS n[hEFA̋@\g
悤ɂȂĂāAׂ̍@\g߂Ɉς킯v
wĂƂ́A iostream ⃉^CƂ MFC A̎g
ĂƁHx
uƁB iostream ́qW C++ CurA^C
qW C CurČĂ΂̂̈ꕔBWÅJ
 OS łg܂v
ŵ OS ̑삷@\tĂAۂ OS ΉĂȂ
ȂĂ킯Hx
uꂪWCũX^XĂƂˁBėpIɎg悤ɂ
Aׂ@\͂ȂAĂƁv
wׂ̍@\ċ̓Iɂ[ƁHx
uƂ΂qBt@CrƂqǂݎprƂ̃v
peBB OS ɂĂ͂ݒ肪t@Cɂ͂Ȃˁv
wӁ`Bӂ߂̎Ix
u͂Δv
w󂿂񂪏vOAȂ =  (  , ŏɗ悤
ɂẮHx
u[A͂ˁv

    HANDLE hFile = 
        CreateFile( "Data.txt", GENERIC_READ, 0, NULL, 
            OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );

uĂȂĂqO̍s瑱ĂrĕȂłBvO
͂ǂ̍sǂݐi߂邩A܂ =  , oĂO̍s
̑Ȃĕ悤Ɂv
wCfg邶x
uCfg͐MpȂĂ̂l̃X^Xv
wĂƂˁ[x
uccʂɐ^ȂĂAɒNĂȂv
w[AlƂBs₽Ƒ̂́Hx
u͂̌₷ȁB̕܂Ƃ߂ƂAɒ
cɒǂ݂₷Ƃv
w͂悭Ȃccx

/*
    Preview Next Story!
*/
włzgA API Ėʓ|ˁx
ut@C iostream Ƃ邩܂ǁv
wĂƂ́A API @ȂĂ̂́Hx
u[ςv
wx
uƂ킯Ŏv
 Version 5.16 API œǂݎI 
wɂÂIx
u܁A iostream q̐lĂꂽrĂǁv
w API ̂NĂ΂킯x
uRs[^[IɍĂƊyȂ񂾂ǂˁ`v
wccȂł̂x


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

ECodian-STLɒǉI
@CodianSTLɃy[Wǉ܂I
@́u STL & iostream v̒STL#06`#09ǉB
}łI

E\PPo[WɁI
@PAV\łBāA܂t`ĂȂijB
PPăl^ɍ邵BǂȂB


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