////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    MF 2001/07/23(Mon) No.117
    zMF 3770 ( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

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

EOl̃zbgn[uAڊJnII
@ԃX^̂SR}}KuOl̃zbgn[uvɘAڊJnI
@\oĂȂAdL}Kɂ܂ĂĂƃT
{Ă܂AƂƂAڂJn܂I
@ǂĂXV͕sɂȂႤAʔȂȂǁA
ڂŌĂĂł[B
[ Ol̃zbgn[u ]
http://www.kab-studio.com/Comic/HotHerb/


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

2001/07/15 (Sun)
@ՂƂQbAeqXNuGbOɂȂB{
ZpҎ̊菑𑗕tB̂߂()Bk@AƂƂZ
񂪁`()B

2001/07/16 (Mon)
@T[rXāuvƋNɎsł˂ĉ܂
BT[rXł̑ PC ւ̃Rs[ōBzbgn[uƁBe
q܂sB

2001/07/17 (Tue)
@̎cƁBłƂBFXGȂŁAcƐ\H
IĂ͕ʂɐĤׂƂȂ񂩈ႤB PDA ǂꂪH@
daemon ͐_lȂ̂łB

2001/07/18 (Wed)
@傱ƂcƁBđςłˁ[BAɃR~bNX
ʍwBƉpbBăf[ւ̓{()B

2001/07/19 (Thu)
@͂ȂcƁBłȂy()B܂܌oĂȂ
H@VXo[K[͔łB Java }KRʉ߁Az
gFXˁccB

2001/07/20 (Fri)
@jӑĂȐŉ߂Ă݂BߑO͊֓̃J[~[WA
ցI@܂łɂRHHׂ邵̂߂ɂVOԂBłɍؒ
h}[N^[ւBȂŒč́H@ē̍Lƃ_
ȎB

2001/07/21 (Sat)
@}[{[zbgn[ȕՂƂ폑ƁA
FX炾炵Błꂪ̃YH


////////////////////////////////////////////////////////////////////
/*                         A                             */
http://www.kab-studio.com/Novel/Fuga/

@́@\Ɖ^@|PO|

@͂̂̂ĂBłȂ̂ɔׂĘLׂ߂ɑ
KX܂ĂBƂǂA܂cĂkߖグ
ĂA͂Ȏ҂ɂ͖ڂȂB
@@ЂЂȂUB[͌̂ɍx
ǂŝȁ[ƂƂڂōlĂ̂ȂB
uف[v
@̂̂񂫂ȐɌ͐UB͂̂тƂŎUĂ
B
u񂶂v
@̓_bVBɌāB͑OUグ邪A
͂̑x𗎂ƂȂBU~낳s܂Ȃ]Â܂
_sGɌ̘e𑖂蔲B͖iUAƘL̊Ԃ
ǂjB
u[ʂ[񂱁[Aā[̂ȁ[ف[ցv
@LsA͎@A͐ؗĂĉ̕ւƑĂB
ȒƉ̑ł͉_D̍\\͂B
@Ȃ͂ƂłȂB񍷂͏k܂ėĂ
A{l͗]TႭႭ̕\B
@͉̂ւƒAJĔт邪AЂ傢Ƒ̂
]ĉ͊Ki~ĂB}u[L|Ă߂オL̃^
CAU鏰B͐UARN[g̗₽ǂ𖳗~
ĂBɂ̕ǂ͌łĉ󂷂ƂłȂB
uzgA̎̂vȂ킯Ȃ񂾂ȁv
@͂܂eĉbB
uv
@̉bɑēK̓ʋւƌĂBǂ
đĂB
@Ki삯ĐU̐ɂ́A܂ʋB
͂̒ւƓA͕ǂ𖳗󂵂ĒւƓB
@͈̒ʋFB̃VN\\wɂ悤
̂ł͂Ȃ\\ȂSĂ̎֌Ђ˂ĂB̕
̑AԊpɉƕĂB͓lA̕
ĖiB
wx
@tƋɉ̉Er낿Ƃ삯B
upӂ͂ȁHv
@߂ȂłA͂vȂ炤ȂB
@weBԁB͌Ƃ͂܂ꂽ
\\̓VւƔłB̕ɂ́ÃXvN[
B
@oBV䂩H鐅H~`AAG炵
B
uǂāIv
@͉̂āA아ɎB
w̓ɔ߂SÂ߂AɔюU閳CȂ鍰AƎ荇
dтA̑傢ȂbƂȂIIx
@ruԁA͉̎NȂBAoX
ɁAَȉ荞łBł悤ȉ
AЂт悤ȉccɊ|Ĉ̂犣
̂ɂȂĂB
@͂낫댩񂷂Äٕςɂ͋CÂĂȂ悤B
͈ٕς͂ȂƂ݂ȂāAlɂݕtA߂ÂĂB
wׁAIIx
@ːĵ悤ȕX̂炪lсȂ̒ɓ˂h
BߒɂȋѐwZŜɋ킽B
wɁAɁI@̖XpȂƐĈ̑Ȃ͂Ɛ
IIx
@͑̂U񂵂̎ɓ˂hĂX̞U蕥Ƃ
A͎v悤ɂ͎ȂBA˂hĂX̞
́A瑄ւƂǂǂ傫ȂĂBḰA܂ŐԂ
̃GAuV|Ă悤B
uȂȁv
u񂽂̍łv
u͓˂hȂČĂȂA䍁킢ČĂv
uĂI@I邩ccv
@ȂłȂɂĂ̂ccgȂBƂɂ
́Aڂ̑O̖Ă݂̂B
@ӂӂ̖т́A܂ŃnlY~̂悤ɐĂB̒ɓ˂h
X̖݂ɂāȂ̂قڊSɕĂB͂
AƂ܂܂ȂȂB
wSĂAĂ\\܂łx
@֌AXvN[AłɓtAoĂȂB
ɑ~AȃIuWFNg킸ɂމ鑼
ȂA{Ɏ~܂̂悤ȐÂKĂB
                                                              ()


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
wccȂ݂ˁx
uǂ́H@낫낵āv
wSR}}Kn܂ÃLoĂȋCāx
uԐĂƁHv
w񂾂ȂāABǂoꂿႤƂIx
uȂƂΔ͂ȂłÁv
wȂ񂾗ǂ[x
u肢tH[ā[v
wAP炢Azbgn[u̒j̎qƑĂx
u`BāAނ̖OĂȂẮHv
wmȂccx
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

@Version 6.17
ASSERT ̖

uO͋CɊ|͈͂߂@Љ܂v
wϐ̎g͈͂񂾂ˁx
ułBO̓RpCG[ɂ@ǁA̓
^CG[ɂ@v
wցH@^CG[͂܂񂶂Ȃ́Hx
uȂāA܂ƂNƂɁAꂪȂ̂͂
łv
w炻^CG[ɂHx
u䂱ƁBŎĝA ASSERT() ă}Nv
wAT[gH@}NȂ́Hx
u܁AƂ肠gĂ݂܂傤v

void CDebugDlg::OnButton1() 
{
    ASSERT( 1 );
}

wccx
uccv
wccȂNȂHx
uAN܂v
wȂɂx
uNȂ̂́A 1 B 0 ɂƁccv

void CDebugDlg::OnButton1() 
{
    ASSERT( 0 );
}

wAoȃ_CAOoIIx

Microsoft Visual C++ Debug Library

Debug Assertion Failed!

Program: C:\PROGRAM\DEBUG\DEBUG\DEBUG.EXE
File: C:\Program\Debug\DebugDlg.cpp
Line: 180

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
[~][Ďs][]

wȂ񂩊ȂG[ccx
uꂪA ASSERT() ̋@\v
wցHx
u ASSERT() ͈ 0 ̏ꍇɁA_CAOoāAs
ꎞ~łB炱͑SRSȏԁv
w܂胄o͂ȂHx
u䂱ƁBƂ΁yz{^ƁAȂ悤Ɉꎞ
~邩v
wAʂɂȂx
uy~z͎s~A[Ďs] ASSERT() \
v
w΁Ã_CAOɂ ASSERT() Ăł镔oĂˁx
uA File  Line  ASSERT() Ăł\[Xt@CƍsԍB
gĂ ASSERT() Ă΂ꂽꏊ킯v
włA̎gāHx
ugāAoOԂɂ܂v
wԂɁHx
uBƂ΁ccȊv

void CDebugDlg::OnButton1() 
{
    CString cStr = "ABCDE";
    cStr.SetAt( -1, 'Z' );
}

wقBA ASSERT() ̃_CAOox
u CString::SetAt() ́A CString ̒́̕APPu
郁o֐BP̈ʒuɁAQ̕u܂v
wāA[P -1 Ă܂񂶂ȂH@AIx
u䂱ƁByĎsz{^ŁA ASSERT() Ăłꏊoāv

// MFC ̃\[XR[huĂꏊA Strcore.cpp
void CString::SetAt(int nIndex, TCHAR ch)
{
    ASSERT(nIndex >= 0);
// ȉB

wA ASSERT() BłȂ if ݂x
uA ASSERT() ͂قƂ if Ɠ悤Ɏg܂BA if 
āA~ 0 A܂ 0 ĂƁv
w if  0 ȊOAĂƂ͐΁H@m nIndex >= 0 
Ƃ́AꂪĂ ASSERT() ɈȂ񂾂˂x
u ASSERT() ɂ́q܂rށAĉāv
wȊOȂ ASSERT() ɂȂ[AĂƁHx
u䂱ƁB ASSERT(nIndex >= 0) ȂA nIndex  0 ȏȂ
AȂȂv
w[[_CAOo񂾁x
uŏdvȂ̂́A݂B܂́AӂɁqႢȂ
ꍇrE悤Ɏg܂v
wmɁÄʒuŃ}CiX͂ႢȂˁx
uƂΉΔ񂪂̃o֐낤ƂĂ̏uԁB
̈ʒunĂ炨AĎɁÁq}CiX͂Ⴂ
rɋCtA ASSERT() ݒuIv
wႢȂAĎv瑦uHx
u䂱ƁBӂɊ֐鎞A⃁oϐŁq̕ϐ
̒gAl̎͂܂Ȃrďꍇv
wlɖԂɂ悤 ASSERT() ݒuIx
uƁI@悭gʂ́A܂ NULL `FbNv
w NULL ă|C^̂ˁx
uB|C^󂯎 ASSERT( pcDate ) Ƃāv
wň́Hx
u NULL  0 Ałv
w Ver 5.11 ( No.076 ) łˁBŁA ASSERT()  0 œ
肾x
u䂱ƁB if  switch ŁqȂ͂r̂ƂɐݒuƂv
wǂ䂱ƁHx
u͗v

void GetNumber( int p_i )
{
    switch( p_i )
    {
    case 1:
        TRACE( "1 ł\n" );
        break;
    case 2:
        TRACE( "2 ł\n" );
        break;
    default:
        // ɗ邱Ƃ͂蓾ȂI
        ASSERT( 0 );
    }
}

w܂ 1  2 ȊO ASSERT() Hx
uƁBӂɁAႢȂꏊ ASSERT( 0 ) 
Ă̂ЂƂ̕@v
wȂ񂩖ʔx
u̕ӂAO񌾂qCɊ|͈́r߂邱Ƃˁv
wA蓾ȂlƂ ASSERT() Ɋ|Ⴆ΂͋CɊ|
Ă񂾁x
u䂱ƁBďdvȃ|CĝQB ASSERT() ͋N\
Ƃɂ͎g_v
wN\邱ƁHx
uƂ΃t@C fopen() ŊJBꂪǂAƂ
̓_v
wt@CȂꍇđˁBłȂ ASSERT() _
Ȃ́Hx
u܂A ASSERT() Ɋ|ƒ~ႤĂƁv
wAꂱqgĂt[YIrĂƂɂȂႤ񂾁x
uƁA ASSERT() ̓vO}[AĂƁBvO}[
qႢȂƁr菜߂Ɏg悤ɂĂˁv
w[U[Ȃ񂾁x
uɁAŏIIɂ ASSERT() ċ@\ȂȂႤv
wǂ䂱ƂHx
u悤ɁA[U[ɂƂĂ ASSERT() ͂Ȃ̈ӖȂ
AJ鎞ɖ񂾂ˁv
wĂȂ񂩕sccx
uāAG[ɂ́Aʂ if őΏāAʏʂœK؂ȏ
Ă΂킯v
wႻˁx
úqrĘb͎ɂˁBŁAdv|Cĝ݂߁A
́qCtȂႵ傤ȂrĂƁv
w܂qႢȂrɋCtȂӖȂĂƂˁx
u ASSERT() ăvOg݂ȂݒuĂ̂ACt
ȂA܂󋵂mȂ肵AgʂȂ
ȂႤłv
wႻB̈̕ʒuȂ񂩂AYꂽ肵ccx
uɃeXgdvB悤Ƀ[XƂ ASSERT()
܂łv
wĂƂ́AʂɎgĂ ASSERT() 󋵂͂ȂĂƂˁx
uŁAeXgOɂāȀ󋵂ȂI@ĂƂmFȂ
Ȃ킯v
wAȂ񂩕ςȂƂ ASSERT() 󋵂ɂȂ܂񂾁x
uꂪA ASSERT() Ȃ悤ɂ܂Kv
܂B ASSERT() ɈȂ悤ȒlɂƂA ASSERT() ȊO
@ŏƂv
wq ASSERT() ȊO̕@r͉\̂󋵁AĂƂˁx
u䂱ƁBeXg ASSERT() A͕ʂɎgĂ蓾邱
ƂȂ̂A̓vO~X ASSERT() 悤Ȓlɂ
Ă邩Âǂ炩v
wł̋ʂēccx
uˁA̕ӂ͂ȂbɂȂ邩Bŏ͕₷
ɍiĎgˁv
w CString::SetAt() ݂ɂˁx
u䂱ƁBčŌɁA ASSERT() ͎ŋN̂ĂƂ
ƉĂĂˁv
w[΁A[[_CAOoAȂ񂩃oCƂŋN悤
ɎvႤˁx
uvႤǁA͑SRȂĂƁBƂ ASSERT()
̒gĂƂBĂƎvǁAʂ̃vO
ĎvƁv
w|ȂȂˁx
uŁA ASSERT()  MFC ŖꒃpĂ܂v
w CString  MFC ̃NXˁx
u MFC gĂ ASSERT() ̃_CAOoĂ邱ƑǁAo
Ă炻͊ԈlngςėRv
w܂蒍ӂĂ邾A΂񂾂ˁx
uƁI@ MFC  ASSERT() oĂAQĂT
܂傤v

/*
    Preview Next Story!
*/
wāA MFC ̒ĂSR킩Ȃ񂾂ǁx
umɂˁ[A MFC ĕG玩łȂv
wAHx
u[ƂŔƁAȂƂccv
w󂿂񂪌񂾂AȂςȂ񂾂ˁccx
uƂ킯Ŏv
 Version 6.18 fobOrhƃ[XrhĂ 
wɂÂIx
u܁Alɐu肷Ƃ͑厖łv
wˁAȂ񂩂킯ȂG[AƂȂ񂾂ˁx
ufƂŐuƂ ASSERT() Ȃ炻͂菑܂傤Iv


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

EXVȂB
@܁A̎̏Tɂ͂W\ǎ邩ˁB


////////////////////////////////////////////////////////////////////
/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
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://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

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




