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

    KAB-studio.h


    (C)KAB-studio 1999 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    MF 2005/01/10(Mon) No.289
    zMF 2016
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

/*                        VŇ䈥A                            */

@ǎ҂̊FlA܂Ă߂łƂ܂B

@N͐FXƂbɂȂ܂B
@ɁAlIȘbłPQɑ̒Ă܂A̍ۂɃtH[
ĒXɂ͐S\グ܂B̊֌WŁAN͐E
邱ƂɂȂAɃRec[ĂƍlĂ܂B
@܂ARɂN KAB-studio n܂ĂPON}Nɂ
܂BN KAB-studio ̐ߖڂƂȂNɂȂ肻łB

@N͊Fl̊҂ɉe񋟂ƍlĂ܂
ŁAFlAꂩ낵肢܂I

////////////////////////////////////////////////////////////////////
/*                QOOTNPPij̍XV                  */
http://www.kab-studio.biz/index.html

EP\ǎI
@VNƂƂŐV\ǎłII
@͏ȃnIVIłB͂PNȌĂłijB
@_E[h CG Gallery ɂāB
[ CG Gallery ]
http://www.kab-studio.biz/CG/Gallery/index.html#KAB_studio_200501_1024

////////////////////////////////////////////////////////////////////
/*                QOOTNPPOij̍XV                */
http://www.kab-studio.biz/index.html

EɍXVȂcc
@߂ȂAT͓ɍXV܂B
@قƂ́[܂͗T炢ɂ́ccB


////////////////////////////////////////////////////////////////////
/*                        储ʂȓL                        */
http://www.kab-studio.biz/nikki2/index.html

2004/12/26 (Sun)
@߂BvXOQ[ŃigƃC^XgB NDS  PSP BnŋAĒ
PQɐQĂ܂BԂ낮ōNUԂBlłς
BNUԂAPQBPQ͍ňB]kPAxwB]kQA
ĂłBăNX}Xp[eB[B

2004/12/27 (Mon)
@܂BCƂMƂׂ̕ۂǏ󂪈B
a@s\B̂Ƃ͊ccBv̊OォBPQ
H@PΔ̎ɐ̋frBvleXX
Ƃє̉SĂڂڂ닃B̐Eꂪ푈݂B
[B

2004/12/28 (Tue)
@VɋNĂ䂤a@ɍs炢҂ĕזĈȏB
ȂoBǏς炸BAɉlցBAĂ͔N`
MachicianBAʔBğTaH@đ̂
{BĐSƑ́B

2004/12/29 (Wed)
@Ǐ󂪂܂cĂccBG`܂BP\ǎAMachician
qCRlg̐pAMachicianuZtvB񂵂ƔŌB
ĂaƍutEB

2004/12/30 (Thu)
@̓rfĨ_rO܂BPOɋNăhoVŒd
āAꂩ~R~ցBrWAA[cƂKX{ƂΓcl
̖{ƂAƐ\ZbgwB\ǎ͐̂̊G`jŁB

2004/12/31 (Fri)
@P\ǎI@RZvǵunIVIvBN̂P
x[Xɕ`́B񂩂ȂGBɁuo[Wv
BN̂ƔׂƑSRႤcc𑜓xƁA┧̎ႤB
PPɋNă_rOƂobNAbvƂBN͂NBN
͂Ƃ肠v[BŌ̃cbR~̓vO~O̊yB

2005/01/01 (Sat)
iҗÂ߂x݁j

2005/01/02 (Sun)
iҗÂ߂x݁j

2005/01/03 (Mon)
@ƋAĂ܂BRPAPAQɂāBꂩ̌ve
Ă炢܂BƂ킯őސEǂ[őMBāA
ǂȂ邩B̂ccBcbR~RB

2005/01/04 (Tue)
@̒ňȂƁBd߂ł̂т肵Ē莞オB
cbR~SB

2005/01/05 (Wed)
@̊̂̂ɊccBΖñ[_[ɐBԔhaЂ
lƂ̂b́ccʉ̂悤ȊɁijBcbR~WB

2005/01/06 (Thu)
@ԔhaЂ̕Ζn܂ŗĂāAdςɁB
v̓BhbЂƂ͖ςɂȂ܂B̌ސE
ɌpȂ闝RBăNԈႢBăXgXB

2005/01/07 (Fri)
@ƍŏIBvWFNg甲āARɔhbЂ̋_
ցBt@CuāAו܂Ƃ߂āB{dBhbЂ̂RNU
ԂBŏ̔N͂dȂƂBRNڂ̃vWFNgԊS
[BƂ͔h`ЂBĘAȂB

2005/01/08 (Sat)
@[ƂĂBOiNogItCX܂łB
уTbJ[ƃACA[K[BƂȂH


////////////////////////////////////////////////////////////////////
/*                         A                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

@\́@t@C_EgЁ@|PU|

uȂƎ̂ςǁv
@ƁA͈ꌾfĂA
uiDǂIv
@ƁAew𗧂ĂB
uł[Iv
@ƕew𗧂ĂB
ul͐S~܂vłccv
@߂rY̕\ĂB
uccv
uH@q̊źHv
uccm[Rgv
uHv
@ϐ킵ĂƂ̃mm͂ǂւAq̕\͕GB
uA͈xƂɖ߂邩Bɕ񍐂ȂႢȂB
B͂ǂ́H@AȂ瑗Ăǁv
ul͋A܂BɐeSz܂̂Łv
u͍͔܂Ă܂v
uHv
@S̒ڂ󂯂B
u炢łH@񂾂v
u킩BAؑNƂƂŁv
uAꂳv
@̌ĂтɁA͐UB
ucĉƂǁccǂǂ́Hv
@SɕւƌB
úAAȂ߂Ȃv
uccv
u͎̓Ȃ炿ƂʂqȂ񂾂Ă킩A
Ō߂ȂB͕Mv
u肪ƂIv
@ʂ̏΂݁AĔ΂ޏrYB
@q́A΂B
                                                              ()


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
uNBlɁȂočsĂ炢v
@ˑR̐鍐B
@łB
uwxƂ̂͂Ɏĝł傤Bv
@Ȃ񂩃v[ɍs]T͂炵B

Machician Sb @B̖@A@B̓Vg D]AڒI
[ Machician ]
http://d.hatena.ne.jp/kab_studio/20040823#1093276416
[ Machician{ݒ ŐVꗗ ]
http://d.hatena.ne.jp/kab_studio/searchdiary?word=*%5BMachician
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

@Version 14.22
̓IuWFNg

úA܂O̕Kv
wNeBJZNVŃfbhbNAˁx
uNeBJZNVɌ炸AfbhbNĂ
̂܂v

EIuWFNgPAQ݂B
EXbhPAQ݂B
EXbhP͓IuWFNgPɃbN|ĂԂ
@IuWFNgQҋ@B
EXbhQ͓IuWFNgQɃbN|ĂԂ
@IuWFNgPҋ@B

ȕƁAmIɃfbhbN\܂v
wmIHx
uȀƁAfbhbN̂́v

EXbhPIuWFNgPɃbN|āA
@IuWFNgQ̑ҋ@JnOɁA
@XbhQIuWFNgQ̃bN|B

uƂꍇBO̗ŌƁv

// ʃXbhŌĂяoA g_iData 𑝂₵֐B
void __cdecl IncrementThread1( void *p_p )
{
    TRACE( "XbhJnB\n" );
    for( int iF1 = 0; iF1 < 10; ++iF1 )
    {
        // NeBJZNVŃbN|܂B
        EnterCriticalSection( &g_stCriticalSection1 );

        TRACE( "IncrementThread1() 1  2 ̊ԁB\n" );
        // 0.1 b҂܂B
// XbhP 0.1 b҂ĂԂɁcc
        Sleep( 100 );

        EnterCriticalSection( &g_stCriticalSection2 );

uő҂ĂԂɁv

// ʃXbhŌĂяoA g_iData 𑝂₵֐B
void __cdecl IncrementThread2( void *p_p )
{
    TRACE( "XbhJnB\n" );
    for( int iF1 = 0; iF1 < 10; ++iF1 )
    {
        EnterCriticalSection( &g_stCriticalSection2 );

        TRACE( "IncrementThread2() 2  1 ̊ԁB\n" );
        // 0.1 b҂܂B
// XbhQő҂ĂƁcc
        Sleep( 100 );

        // NeBJZNVŃbN|܂B
        EnterCriticalSection( &g_stCriticalSection1 );

uɃXbhQႤƃfbhbNɂȂ܂BŁAdvȂ̂́v

        Sleep( 100 );

ủӏBꂪȂāAƂĂZꍇA܂v

        EnterCriticalSection( &g_stCriticalSection1 );

uv

        LeaveCriticalSection( &g_stCriticalSection1 );

u܂ł̎ԂɒZꍇv

EXbhPIuWFNgPɃbN|āA
@IuWFNgQ̑ҋ@JnOɁA
@XbhQIuWFNgQ̃bN|B

ȕ́qIuWFNgQ̑ҋ@JnOrɁqXbhQ
IuWFNgQ̃bN|r̂ɓȂ܂v
wA Sleep() ő҂ȂAIuWFNgPɃbN|
ƂƂƏēIuWFNgQ̑ҋ@ƂƂƂႤA
q̊ԂɁrĂقƂǂȂ񂾂ˁx
uƁBAꍇɂ́qmIɁrfbhbN
邱ƂɂȂ܂v
w^΁AĂƂˁx
uI@{Iɂ͂Ă͂܂v
w[AmɎgĂl猩΁q^rς܂Ȃˁx
uƁBʂɃvOgł΃fbhbN
m 0% Bꂪ 0.00000001% ɂȂł_v
wcc܂ŌKv́Hx
u͏gɂ́B 0.00000001% ̊młȀ
PbԂɂPsH@QSԂRUTƑ点Hv
wA΂ɔ˂ccx
u񂱂gႢȂAČƂł邯ǁA
́v
wƃfbhbNׂ͒AĂƂˁx
uƁv
w[AIx
u͂Δv
wfbhbŃq̓IuWFNggrƔႤ񂾂
ˁBȂɂ΂񂶂ȂHx
ułJȂ񂾂ǁccv
włȂ́Hx
uIuWFNǵA{IɁq肽ΏۂɂЂƂrKv
łBƂ΁AO̗ł g_iData ̂悤ȕϐRv
wIuWFNgRKvccx
uƂƂɂȂ܂BAIuWFNg𕡐Ƃ͔
܂v
wccႠÂR̕ϐЂƂ̓IuWFNgŃbN|
Ă[̂́H@Ƃ΁ccx

// LϐB
int g_iData1 = 0;
int g_iData2 = 0;
int g_iData3 = 0;

wĕϐ鎞Ɂx

void __cdecl IncrementThreadAll( void *p_p )
{
    TRACE( "XbhJnB\n" );
    for( int iF1 = 0; iF1 < 10; ++iF1 )
    {
        // NeBJZNVŃbN|܂B
        EnterCriticalSection( &g_stCriticalSection );

        // g_iData1 ւ̏B
        // g_iData2 ւ̏B
        // g_iData3 ւ̏B

        // NeBJZNṼbN܂B
        LeaveCriticalSection( &g_stCriticalSection );
    }
    TRACE( "XbhIB\n" );
}

w݂ɁAЂƂ̔r̒őS̏Ⴄ̂͂ǂȁB
g_iData1 gƂɃbN|āÅԂ g_iData2  g_iData3 
ANZXłȂA݂Ɂx
uȂ瓯IuWFNg͂ЂƂfbhbN͋NȂǁA
ɂԂ|悤ɂȂv
wHx
u g_iData1 ɑ΂鏈ĂԁÃXbh g_iData2  
g_iData3 ɃANZXÃXbh͑ҋ@ԂɂȂႤ킯
v
w g_iData1 ̏IȂ葼̃Xbh͎~܂܂܁cc
ă}`XbḧӖȂˁx
uƁBہA͎̎sxɂƂĂe܂BO
̗ŁA EnterCriticalSection()  LeaveCriticalSection() ̊Ԃ̏
Ԃ̊|鏈v
w̃Xbh̊ԑ҂ȂႢȂccx
uÂԂ|鏈 g_iData ɂ܂֌WȂ
v
wAĖʁIx
uƁBAAĂ͕̂KvŏɂKv
łv
wA̓_Ȃ񂾂ˁccx
uAӂɏȂႢȂꍇłv
wHx
uƂ΁A g_iData1  g_iData2 ̒lɌvZ g_iData3 Ɍ
ʂꍇB̏ꍇA g_iData1  g_iData2 ̃f[^qɁr
擾Kv܂v
wHx
u g_iData1 擾āÂ g_iData2 擾OɁÃXb
hvZ g_iData1  g_iData2 ς肵A g_iData1 
 g_iData2 gČvZӖȂłv
w[AႤvZʂAĂƁHx
uƁB g_iData1  g_iData2 vZʂƂăyAȂA
ӂ̐ĂȂƈӖȂAɉ g_iData3 
悤ȈӖccv
wcc g_iData1 ̎擾 g_iData3 ̌vZI܂łƃbN
|ĂȂႢȂccx
uƁv
wccȂ񂩁A߂ǂˁx
u͖ʓ|ȂłBŁA̓XbhƂIuWFNgɌ
Ae[}̑傫Ȃ̂ŁAł͐[͌܂v
wĂ܂AグƂꂾłP͂ƂgႤx
ƁHx
uƁBɁAɂĂ͂ӂɕGɂȂ
@͂ł邩v
wƂ΁Hx
u̗ႾƁA g_iData1  g_iData2 A g_iData3 ̃f[^
āAꂩ珈v
wccx
uf[^ĂƂ낾bN|āAĂ炻Ōv
ZAĂ΂킯v
wȂ񂾁AȂ@񂶂Ȃx
uA͕ϐ̃Rs[\ȏꍇBϐNXŃRs[
Af[^̗ʂ傫肷Ɓv
wˁccx
ułAǂ󋵂łqgȂ@r͂̂AƂ肠
͂ŌĂ݂āv

/*
    Preview Next Story!
*/
wA񂷂܂x
uق̂肾ˁB{Iɂ͂ʓ|Ȗv
w[A܈Ȃˁx
uȂ񂾂ǁA͂܂ʂ̂bv
wĂƂ͎͈ႤbHx
u͎pIȘbv
wx
uƂ킯Ŏv
 Version 14.23 bZ[W̕K 
wɂÂIx
û܂ɂ܂͕Kv
wx


////////////////////////////////////////////////////////////////////
/*                QOOTNPPVij̍XV                */
http://www.kab-studio.biz/index.html

EقƂ́[Ȃ񂩂邩H
@n߂ƌĂĂقۂĂقƂ́[O`RA낻n܂邩
ccn߂ꂽ炢ȁccB


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

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.biz/nikki2/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


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

    (C)KAB-studio 1999 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

