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

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

ECodian  STL ǉ
@ STL & iostream 傩 Codian  STL ǉI
@ #10  #13 A֐IuWFNǧ㔼͂܂B
[ Codian ]
http://www.kab-studio.com/Programing/Codian/
[ STL & iostream  ]
http://www.kab-studio.com/Programing/STLiostream/

E\PQo[W
@PAV\łB͂̂ځccł͂ȂłˁijB
[CG Gallery]
http://www.kab-studio.com/CG/Gallery/


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

2000/11/26 (Sun)
@vԂɂ̂т`Berĉ߂Ă܂BāAẴsA
meƂĂ̑zoBvXɒeȁ[B

2000/11/27 (Mon)
@FXBQ[ZŃMeBMA[NX蒆ÃR~bN
rfĨ_rOPQ\ƕ` WTL vO~
OƐFXB

2000/11/28 (Tue)
@hLX~ȁ[ƂbBłijB炢ɂ
ȂAł_邵ȁ[BēL̃^CXPW[Bu
XVƂvƂ͕KI

2000/11/29 (Wed)
@vXɐVhsĂ܂I@ANeBuXs[J[𔃂Al͌
炸AhLXŃMeBMA[NXɍꍞ݁AL[{[hԃN
[i[𔃂ԈႦB䂾B

2000/11/30 (Thu)
@PQ\II@̓z[p[eB[łȂ񂩃Aȕ̉Δ
B͂ɔ܂BȂɂ͗ǂłƎvǁB

2000/12/01 (Fri)
@AEOCiʐMYjɊAarfW^ɓłf()B
ƃKoK[ŏIBȏɓeǂłB

2000/12/02 (Sat)
@ԃwb_[(̃}K)̏BȂ񂾂񂾌Č\ςȂ̂B
܁ADĂ񂾂ǂˁBƃerFX`Bj[
gȂ肢B


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

2000/11/26 (Sun)
23̓LȂ
WTL gn
WTL  ATL pT|[gCu
st@ĈɌĂ
_E[h@
𓀂̒g
ATL/WTL AppWizard X^[g

2000/11/27 (Mon)
WTL Ń[__CAO\ Exe
vWFNg.cpp 
CAppModule ^̃O[oϐ _Module 
CWinApp theApp ̑
_Module ̖O͕ςȂ
_tWinMain() 

2000/11/28 (Tue)
WTL Ń[__CAO
maindlg.h  CMainDlg 
CDialogImpl p
OnInitDialog()  OnOK() ŏĂ
OnInitDialog()  API  LoadImage() Ă񂾂
ւ
uvŐIv_CAOŁuIvŁuȂv́H
WM_CLOSE  PostMessage() ܂BPObԑ҂
Ȃ΁uȂv
ׂ邾ȂVXbhő̃bZ[W SendMessage() 
ւ
VXetbN WM_DEVICECHANGE E
ǂ̃tbNŏE΂̂͌\ׂ̑
TuNXقy
VXetbN| SetWindowLong() Œu

2000/11/29 (Wed)
WTL Ń[__CAO
ClassWizard ͂قƂǋ@\Ȃ
ENbNj[́uCxgv͋@\
\[Xׂāupv
WTL  AtlMisc.h  CString Ă
ɂ CRect CRecentDocumentList CFindFile Ȃǂ

2000/11/30 (Thu)
WTL Ń[__CAO
MFC ̂悤 DDX g
AtlDdx.h  DDX pNXƃ}NpӂĂ
TvR[h
CWinDataExchange h
BEGIN_DDX_MAP }N
͈͎wA^ႤƂ̃G[\ł
Sŏ銴

2000/12/01 (Fri)
ATL/WTL Ŏgev[ǧp
TvR[h
eNX̃ev[gɎqNXw
ev[goRŎqNX̃oփANZX
I[o[ChĊȂ

2000/12/02 (Sat)
ATL/WTL Ŏgev[g̑dp
TvR[h
ev[goRŎoNX̃oփANZX
ev[gS
łI[o[Ch肩


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

EǉPF
PoCg QoCg ActiveMovie CString switch A}bv
N[W[ XJ[ Sp p tb^[ x_[ 
[N 

ET̏󋵁F
@TPǉĊJcc̊ɂ͂Ȃ񂩂܂W܂Ȃ
()B܁[A̐łȂɑςĎv΂̂炢̂
ȂǁB


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

#05 ev[g̐

@̓ev[gׂ̍ɂČĂ܂傤B܂A
ev[g֐ev[g̈ɂȂĂȂꍇB

template< class type_Return >
type_Return RetZero()
{
    return 0;
}

@O񌾂ʂAev[g͊֐̈Ō肳邩A
͕ʂɂ͌Ăׂ܂B

//  RetZero();    // RpCG[B

@ƂЂ˂

//  int i = RetZero();    // RpCG[B

@ĂӂɂĂAĂԂƂ͂ł܂B
@̏ꍇAev[g𖾎ΌĂԂƂł܂B

    RetZero< int >();    // int ^wB

@́uev[g̖vgƁA߂lȊOłu^
uvł悤ɂȂ܂B

template< class type_Class >
void CallStaticMemFunc()
{
    type_Class::StaticFunc();
}

class CHasStaticMemFunc
{
public:
    static void StaticFunc()
    {}
};

void Use_CallStaticMemFunc()
{
    CallStaticMemFunc< CHasStaticMemFunc >();
}

@܂Aev[g𖾎dlɂ΁AǂȌ^łu
邱Ƃł悤ɂȂ킯Bꂪuev[g #define ̑
vČ闝RȁB̓I[o[[hɂāBˁB


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
wˁ[Aev[gĖʔ́Hx
uȂɂȂv
wĂÂȂ`AԂ`A STL()x
u C++ ɂ͕Kvsȗvfˁv
w̑Ô炩Ȃ`ǂł邯ǁA\掄x
uev[g͒PȂuˁv
w[ȂŐ󂿂񋳂ĂȂ́Hx
uȁ[AΕKvȂ̂Ȃ񂾂ˁv
wȂ́Hx
uΔ std::ifstream gĂłv
wt@CǂݎƂ̃NXˁx
uzg̓ev[gȂ񂾂v
wI@́Hx
ułev[goėȂłBev[g͗񂾂v
w̗͎̉Ȃ񂾁x
u׋Ƃ́Ả̉őg܂ȂႢȂƂv
w܂܂͌̂ˁccx
_______________________________________________________________[KCM]


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

@Version 5.20
t@Cǂݍ݂ɃubVAbvI

uO܂łŁA CFileTestDlg::OnBtnShow() ͂ȊɂȂĂ܂v

void CFileTestDlg::OnBtnShow() 
{
    m_cDataLstBox.ResetContent();

    int i;
    std::ifstream cIFStrm;
    cIFStrm.open( "_Data.txt" );
    if( cIFStrm.fail() )
    {
        CString cStr;
        cStr.LoadString( IDS_E_NOFILE );
        const int iIDOffset = 1000;
        CString cStrCap;
        cStrCap.LoadString( IDS_E_NOFILE + iIDOffset );
        MessageBox
            ( cStr, cStrCap
            , MB_OK | MB_ICONEXCLAMATION );
        return;
    }

    while( !cIFStrm.eof() )
    {
        cIFStrm
            >> i;
        if( cIFStrm.fail() )
        {
            TRACE( "lȂł\n" );
            return;
        }
        char chDest[256];
        sprintf( chDest, "%d", i );
        m_cDataLstBox.AddString( chDest );
    }
}

w̓t@Cǂݍ݂̏̃G[Ă񂾂ˁx
ułBłƉ̕Ă݂āBłG[Ă
v
wAzgA TRACE() ŃG[oĂˁx
uɂR[ĥ͖ʂAG[Õo֐
Ƃč邱Ƃɂ܂B̕łG[KvɂȂ邩
ˁv
wց[AƂł񂾁x
u͊֐ɂ܂Ƃ߂Aꂪ{BvO肵Č
Ȃ邵AԈႢ𒼂̂Pōςނˁv
wႻˁ[AƂςSȂsȂ
ˁx
uł͂܂Ao֐Ă݂܂傤B܂ł́qCxgɑ
郁o֐rĂȂǁv
w CFileTestDlg::OnBtnShow() ˁx
u񕁒ʂ̃o֐܂B[NXy[X́yClass Viewz
āv
w[NXy[Xă\[XƂ\[Xt@CƂFXڂĂ̂
ˁB̃NX̂Ɓx
u CAboutDlg Ƃ CFileTestApp Ƃłv
w CFileTestDlg ˁB̃NXɃo֐t񂾂ˁx
uA CFileTestDlg::OnBtnShow() Ăяo瓯NXɂ
B́yClass Viewz CFileTestDlg ENbNāAj[
yo֐̒ǉzIŁv
w_CAOox
uy֐̌^z̓o֐̖߂l̂Ɓv
w void łHx
uzg͂̂͂ƍlȂႢȂ񂾂ǁAl
 bool Łv
wȂŁHx
uƃG[ԂƂɕ֗v
w[x
uy֐̐錾z̓o֐̖OƈBȊɂāv

    MessageError( unsigned int p_puiID )

w unsigned int ̈Hx
u IDS_E_NOFILE Ƃ ID ɓnv
w[x
u unsigned Ȃ̂ ID B ID ͕Ȃˁv
ẃHx
uyANZXz Private ɂƂāB͂Ɠ
͌\ƂŁBŊv
w񂶂 OK Ɓx
uȂ̂ CFileTestDlg::OnBtnShow() ̉ɂłƎvv

bool CFileTestDlg::MessageError(unsigned int p_puiID)
{

}

wAo֐Ix
uł͂̃G[̕ŁAƎ蒼Ă
Ɂv

bool CFileTestDlg::MessageError(unsigned int p_puiID)
{
    const unsigned int iIDOffset = 1000;
    CString cStr;
    cStr.LoadString( p_puiID );
    CString cStrCap;
    cStrCap.LoadString( p_puiID + iIDOffset );
    MessageBox
        ( cStr, cStrCap
        , MB_OK | MB_ICONEXCLAMATION );
    return true;
}

w[ƁAႤƂ́cc iIDOffset ĂƂŏɗĂˁx
uʂɍŏȂĂ񂾂ǁA͋CŁv
w̕₷ˁB CString::LoadString() ɓnĂ̂
IDS_E_NOFILE  p_puiID ɂȂĂˁx
u܂Ƃēnꂽl ID ƂăG[bZ[Wo
ĂƁBāAĂяo͂Ȃ܂v

    if( cIFStrm.fail() )
    {
        MessageError( IDS_E_NOFILE );
        return;
    }

wIx
uƂ肠Ă݂āv
wrhĎsāy\z{^I@񂿂ƂƓ_CA
Oox
uӂɊ֐ɂ܂Ƃ߂́A߂ǂ_ˁv
wĂ[Aォ璼ƂƂςȂ񂾂ˁB́Hx
uA㔼 while Ɉڂ낤B܂v

            TRACE( "lȂł\n" );

ů֐ɒuႨv
wˁ[B[ƁA܂XgOe[uɒǉȂƁx

IDS_E_NONINT=202 : lȂł
IDS_E_NONINT_C=1202 : lȂł

włHx
u[cc IDS_E_NONINT ́̕qt@CɐlȊÕf[^
܂Ă܂B\nt@CmFĂr̕ȁv
wAs OK Ȃ񂾁Bsɂ \n g񂾂ˁx
uڏނƂɂ́Aśv
w^[L[ƃ_CAOႤIx
uA Ctrl L[Ȃ烊^[L[΁v
wsꂽIx
ułsł邵A \n łł邩v
w[Óqt@C܂rȁx
uˁA܂Ƃ߂Ɓv

IDS_E_NOFILE=201
 : t@C܂łB
 \nt@CmFĂB
IDS_E_NOFILE_C=1201 : t@C܂
IDS_E_NONINT=202
 : t@CɐlȊÕf[^܂܂Ă܂B
 \nt@CmFĂ
IDS_E_NONINT_C=1202 : lႠ܂

uĂƂȁB܁[ہA̕ᕪɂ񂾂ǂˁAg
Ă鑤炷΁v
wˁAȂ񂩂ŃtH[ȂƁx
uAĂяóHv
w ID ς΂x

            MessageError( IDS_E_NONINT );

uˁBAŌ char chDest[256] ɂāBˁAƂ肠
Ă݂悤B while ̂ƂɎ̍sǉāv

    } // while ̋Ԃ钆JbRB
    TRACE( "%s\n", chDest );    // ̍sǉB
} // CFileTestDlg::OnBtnShow() 钆JbRB

wA chDest \̂ˁB񂶂rhāx

error C2065: 'chDest' : `ĂȂʎqłB

wI@G[ɂȂx
u chDest  while ̒Ő錾ĂłB́A chDest ̎
͂ while ̂Ƃ̒JbR̒Ȃłv
wǂ䂱ƁHx
u Ver 4.13 ( No.063 ) Łqϐ̎rłv
wA֐ϐȂȂႤĂ[́x
úAmɌƁq֐甲rȂłv
wÁHx
umɂ́qΉ {  } 甲rv
w while ̒JbR甲 chDest ȂȂĂ񂾁Ix
u { 񂠂ꍇɂ́AΉ } ϐdg݁v
w܂֐Ȃ { } ōl΂񂾂ˁB[Cf
gōl΂Ă[x
uˁACfg͈͂člĂBȂ݂ { } ň
܂ꂽylXgzĂ܂v
w˂ƁHx
uq̒ɉrĂӖB while Ƃ for Ƃ̂A
lXgˁv
w΁qlXg[rƂ悭[ˁx
uЂƂpꌾƁAϐĂ͈͂yXR[vzĂ܂v
w[ՁH@̏eƂɕtĂx
u{PȂēB̗ chDest ȂȂĂg
Ȃłv
wgȂx
uĂƂ́qȂrv
w[AӖŃXR[vȂ񂾁BAāÅ֐ϐ
gȂ̂ƓHx
uBƂ킯ŁAlXgƃXR[vAĕϐ̎A̕
𓥂܂ƁA chDest  while ̑OŐ錾ƂɂȂˁv
wǁ[āHx
u͏hv
wIx

/*
    Preview Next Story!
*/
whĂ[AXy[XȂȂłx
uĂAubVAbvłȂɗʂȂāv
włȂOĂǁA̖{ɍڂĂȂˁx
uȂ񂾂ˁAΕKvȋZpƎv񂾂ǁccv
wƂ킯Ŏx
 Version 5.21 t@Cǂݍ݂ɂɃubVAbvI 
uɂÂIv
wĂقƂǂ̃vO}[͂䂱ƂĂȂ񂶂ȂHx
uA肤ccv


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

ECodian  iomstream ǉ
@ STL & iostream 傩 Codian  iostream ǉ܂I
@ #11  #14 At@Co͂͂܂B
[ Codian ]
http://www.kab-studio.com/Programing/Codian/
[ STL & iostream  ]
http://www.kab-studio.com/Programing/STLiostream/

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


