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

    KAB-studio.h


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

    MF 2004/09/27(Mon) No.275
    zMF 2061
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

EقƂ́[X̂UǉI
@Ol̃zbgn[uɁuX̂U œKȐFvǉI
[ Ol̃zbgn[u ]
http://www.kab-studio.biz/Comic/HotHerb/index.html


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

EPO\ǎǉI
@PAV\ǎłB
@ccPOɂȂĂ̂͋CɂȂłijB
@_E[h CG Gallery ɂāB
[ CG Gallery ]
http://www.kab-studio.biz/CG/Gallery/index.html#KAB_studio_200410_1024

EقƂ́[X̂VǉI
@Ol̃zbgn[uɁuX̂V qC̋YvǉI
[ Ol̃zbgn[u ]
http://www.kab-studio.biz/Comic/HotHerb/index.html


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

2004/09/12 (Sun)
@\ǎA`オ炸ccBWĂƂȂ󂩂ȂBԃwb
_[wǓo^ĂĂ܂BMachiciann߂܂BAƈ
ĂP`QNŏI点\B

2004/09/13 (Mon)
@PV`QÛPOAxBpphLgBhoV
낰R[i[ijBN]tRvɂR`Ŝׂ͂ȂB
P[uer͑ʖڂłccB

2004/09/14 (Tue)
@dlύXǂ΁[ƁBȂɍccBhLz[eŃ`[YwB
vWFN^[̃XN[BăXJp[IB͖ۂ
ccB

2004/09/15 (Wed)
@oOƎdlύX[ƁBoÔ͎BPOAxB
AɊۂ̓IA]ցBJ[I@X[vXgbNg[L[ŁB|Xg
̑OŋFBĂꂩ̗\B

2004/09/16 (Thu)
@POAxBȂǁBpphLgɐ͂
ȂBobNAbvĂWオBࣕՂɂƃGXeI@
͉tvWFN^[̐ݒuBy͂قƂ́[ƕ\ǎBȍ~
قƂ́[O`QB]CH@ċBׂH

2004/09/17 (Fri)
@OŕЕt~iXvXݒuBߑOɉtvWFN^[
EMP-TW200H ƃXN[̎󂯎BvWFN^[B
1500[BXN[̓r[YnAꂪsccBhoV
ijB̃hoVŃ}bgñ`FbNBubNXŃlM
ƂwBx̍PccBPOȍ~̗\ƂB

2004/09/18 (Sat)
@Ȃ񂩔ĂB͂قƂ́[̃ZtꂽBhoVX
֕čsĂ݂BrŃC[{bNXǂȂĂ݂B
XN[͎񂹂BGCAQwBċ̎dg݁B

2004/09/19 (Sun)
@\ǎ`オǂԃAccBHBĎG̕
ƃXLjOB

2004/09/20 (Mon)
@̂т胂[ĥPB߂肠ŨI[fBIR^[𒮂
ƂBMachicianQbBMachician̍XVς悤ȁB
obNAbvQɁBĎG̏ȃXy[XQB

2004/09/21 (Tue)
@ׂB󂵂āAƂقƂ́[O`QBPy[WāAH
ׂ̍AtHg`FbNBA͂߂ȁH@Machician
{҂Rb̑P܂ŏBXB͖ʂȈcc
̂悤ȋCB

2004/09/22 (Wed)
@}bgñXN[EF-60AMBσAjɂ̓}bgnB
قƂ́[Xb̃vbgB_rOƁBԂ낮ɑꗗ
BCj[~߁Băr[YnB

2004/09/23 (Thu)
@قƂ́[X̂VB\̏CBقƂ́[O`Q̐ݒN`B
er͈ࣕՂ̍ŏIƂBĕsYƂB

2004/09/24 (Fri)
@A}]cuc󂯎āAlɍsăfBXvCzƂ
^CXvb^[ƂwBɓOQ[BnKʔBV
ɉƂɋAĐQčɎBēƎhCBĒN̂H

2004/09/25 (Sat)
@̕ЕtƂ\ǎƂBu\ǎقƂ́[ɖ߂v̂
߂ɁBer̓nKƂmXyBPOAxccB


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

@\́@t@C_EgЁ@|Q|

u񂽂ǂoĂ̂v
u̐B̔\͎g񂾂́v
uȂقǁAꂪ邫ɍsnĂ킯ˁv
@Ԃł낮SlɁA`̓䂪Be̔Ȟ
āA{ɓB
uccꂳA肢񂾂ǁv
uʖڂv
@B
u܂ĂȂ̂Ɂv
u邫ɂƂĂłH@ʖڂAwZsȂv
uႤv
uHv
u邫򂶂ȂāAʂ̏v
uȂv
@AƒB
umɗ\͏dvH@łˁAN̂́Aʖځv
uoȓ͂ȂƂ邩v
uRˁv
uv
@͉̕sB
ucĉˁBꂳ́AƐČ߂ȂAČĂ
́v
@͕ւƌāAB
uȂA{ɐ̂ƂlĂȂAȂB
Z𒆑ނāAwɍsȂāANɂȂ̂𓾂
āAMĂBłˁv
@͏rYƋqBӂ̊́A炳܂ɐSzB
uSzA؂ȗFBĂ񂾂v
uccv
upNƈꏏɂĂɊꂽ炻񂾂A
ڂ̑ÔƂČf̂͂߂Ȃv
u킯ccv
uXAꂳ񂾂ɂāAƂ񂽒BɒuĂ
́Al̕KƎvȂ̂H@̂Ă
炻ꑊ̊oȂv
uccv
uA肽Ă̂AƂ͎vǁA͂ˁA
v
@̖ڂ́AځB
uǂ炩ƂƑςȂƂȂ񂾂ˁv
                                                              ()

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
@̐Î~ɂ߂͎Ζʂ~I
@֗ƃW[W͂ւĂȋ@BɏĂĂI
uƑ҂ăppAǵHv
@߂̉^₢ɁI

Pb 󂩂牤q~Ă 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.08
Z}tHgĂ݂I

uOX̓~[ebNXgpĂ݂܂v
wogpXAĊˁx
u̓Z}tHƂIuWFNggpĂ݂܂v

Z}tH i Semaphore j

wqM@rĈӖȂ񂾂ˁx
uȂ񂾂ǁAقǂɂȂĂBZ}tH 
Version 14.04 ( No.271 ) Ő悤Ɂv

Eog

ûv
w~[ebNX͂ЂƂAZ}tH͕x
uog̗ł̂܂ܐȂv

E~[ebNXFPR[X̂
EZ}tH@@@FR[X

u܂AZ}tHłSogpӂƂ΁ASR[Xpӂł
āȀꍇAɑI̐́Hv
wSlHx
uƁB܂Aqog̐ɑI肪rĂ
Ƃłv
w~[ebNX͂ЂƂǁAZ}tH͕ccx
u܁AۂɗĂ݂悤B~[ebNXō ProcessA Ƃ
pāv


namespace B1
{

HANDLE g_hSemaphore = NULL;
const char *const SEMAPHORE_NAME= "ProcessesSemaphore";

// Z}tH쐬܂B
void Create()
{
    g_hSemaphore = CreateSemaphore( NULL, 2, 2, SEMAPHORE_NAME );
    TRACE( "%x\n", g_hSemaphore );
}

// Z}tH擾܂B
void Open()
{
    g_hSemaphore
         = OpenSemaphore
            ( SEMAPHORE_ALL_ACCESS, FALSE, SEMAPHORE_NAME );
    TRACE( "%x\n", g_hSemaphore );
}

// Z}tHĎđҋ@Ԃɓ܂B
void Wait()
{
    TRACE( "ҋ@JnB\n" );
    DWORD dwResult = WaitForSingleObject( g_hSemaphore, 120000 );

    if( dwResult == WAIT_TIMEOUT )
    {
        TRACE( "^CAEgB\n" );
    }
    else
    {
        TRACE( "ҋ@IB\n" );
    }
}

// Z}tH܂B
void Release()
{
    LONG lCount = 0;
    ReleaseSemaphore( g_hSemaphore, 1, &lCount );
    TRACE( "݂̃JEgF %d\n", lCount );
}

// Z}tH폜܂B
void Close()
{
    CloseHandle( g_hSemaphore );
}

}

uƂvOĂBe֐́AOƓ悤Ƀ{^
CxgnhĂԂ悤ɂĂv
ẃ[x
uł́AЂƂĂ܂v

HANDLE g_hSemaphore = NULL;
const char *const SEMAPHORE_NAME= "ProcessesSemaphore";

u̓~[ebNX̎Ɠv
wZ}tH̃nhƁAZ}tH̖Oˁx
uł͎Aԑ厖ȃZ}tH̍쐬ӏv

// Z}tH쐬܂B
void Create()
{
    g_hSemaphore = CreateSemaphore( NULL, 2, 2, SEMAPHORE_NAME );
    TRACE( "%x\n", g_hSemaphore );
}

uZ}tH CreateSemaphore() Ƃ API ō쐬܂v
wĂ[~[ebNXƂقƂǓˁx
uP̓ZLeB֌WȂ̂ NULL łnjBS̓~[eb
NXƓZ}tH̖OnĂv
wĂƂ́AQƑRdvHx
uƁv

    g_hSemaphore = CreateSemaphore
        ( NULL
        , 2                    // JEg̏lB
        , 2                    // JEg̍őlB
        , SEMAPHORE_NAME 
        );

wH@Q́qJEg̏lr 0 Ȃ́Hx
u|CgB܂AԏdvȂ̂́v

EZ}tHŊǗJEg󂢂Ăog̐

uĂƁv
w󂢂Ăogcc܂ANđĂȂog̐AĂ
ƁHx
uƁB̃Z}tHiKł́A܂ȂɂĂ
BƂƂ́A󂢂Ăog̐́Hv
w 2 Ix
uƂ킯v
w珉l 2 Ȃ̂ˁ[x
uāAł͂Q̃ogpӂBۂɃogqrK
v܂B̂߂ɂ͂܂v

// Z}tH擾܂B
void Open()
{
    g_hSemaphore
         = OpenSemaphore
            ( SEMAPHORE_ALL_ACCESS, FALSE, SEMAPHORE_NAME );
    TRACE( "%x\n", g_hSemaphore );
}

uŃZ}tH̃nh擾܂BA̒iKł͂܂og
Ă܂v
w₱ccx
uZ}tHƃogɂĂ邩ˁcc܂AƂ
oguĂe[uɂ܂ŗAĂԂȁv
w悯킩Ȃx
uhccāAł̓og܂v

// Z}tHĎđҋ@Ԃɓ܂B
void Wait()
{
    TRACE( "ҋ@JnB\n" );
    DWORD dwResult = WaitForSingleObject( g_hSemaphore, 120000 );

    if( dwResult == WAIT_TIMEOUT )
    {
        TRACE( "^CAEgB\n" );
    }
    else
    {
        TRACE( "ҋ@IB\n" );
    }
}

wAĎ̂ogĂƁHx
uƂɂȂ܂B WaitForSingleObject() ĂԂƁAJE
gɂăZ}tH̓삪قȂ܂v

Z}tH̃JEgPȏF
@EVOi̓I
@EJEgP
Z}tH̃JEg[F
@EVOi̓It
@EJEg̑͂Ȃ

wHHHx
u킩₷Ɓv

og̐PȏF
@EogēJn
@Eog̐P
og̐[F
@EogȂ̂ŁAog󂭂܂ő҂܂B
@Eog̓[̂܂

wIx
u܂AJEg 0 ̎ɂ WaitForSingleObject() ͊Ď𑱂
B܂AJEg 1 ȏȂ炷ɕԂĂ̂܂܏𑱂
v
wogďĂ킯ˁ[x
uāAIogԂ܂v

// Z}tH܂B
void Release()
{
    LONG lCount = 0;
    ReleaseSemaphore( g_hSemaphore, 1, &lCount );
    TRACE( "݂̃JEgF %d\n", lCount );
}

u ReleaseSemaphore()  WaitForSingleObject() Ō炵Z}tH
JEgtɑ₵܂v
w܂AogԂĂƁHx
uƁBA WaitForSingleObject() ő҂Ă
ɂ́AogЂƂ󂭂v

og̐PȏF
@EogēJn
@Eog̐P

uƂȂ WaitForSingleObject() Ԃ܂v
w܂AognĂƂˁx
uƁv

/*
    Preview Next Story!
*/
wς炸bƂ킩₷ˁx
ub͒Pˁv
wcclx̓ӂȂHx
uȂȂȁAHHHv
wȂƂȂx
uƗt񂾂AxĂ킯Ȃv
wzgɁ`Hx
uƂ킯Ŏv
 Version 14.09 Z}tHŔr 
wɂÂIx
uƂ킯ŃvOłƏؖĂ݂܂v
wȂxςȂłx
uȂŁ[Hv


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

EقƂ́[ɂPbǉ
@Ol̃zbgn[uɈbǉ܂B


////////////////////////////////////////////////////////////////////
/*                          Ӂ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 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

