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

    KAB-studio.h


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

    MF 2004/04/19(Mon) No.253
    zMF 2219 ( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

ES\ǎI
@x݁ccȂĂƂłȂI@Ƃ킯łS\ǎǉ
I
@_E[h CG Gallery ɂāB\烊NĂȂ̂́cc
ccˁccB
[ CG Gallery ]
http://www.kab-studio.com/CG/Gallery/index.html


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

2004/04/11 (Sun)
@Remember11 NABǂ Ever17 قǂł͂ȂBT
͂قƂ́[ȂłB Remember11 ̊z͓LɂāB

2004/04/12 (Mon)
@WɔhɍsĐȑւBɋqցBB̂
񂹂̂ԁAǂȂ͔̂VgBăR~̎tmFnKL
B

2004/04/13 (Tue)
@Ct璩PPB̂܂܋x݂܂BĐQ܂Bzgɖ
BςɂۂɃh}bcQAAjŌccB

2004/04/14 (Wed)
@Q̂ɍBÂoOׂB˂
cucƃA}]B

2004/04/15 (Thu)
@ŒZoHڎwׂȂ̂ɉȂႤBĂ͈ʓI
GWjAȂH@cƂƂ̕ςBTNTNʔB

2004/04/16 (Fri)
@PVߌPPB̎d̓oOׂBfO[hccB̂
݂ɍsāAœOQ[B͂܂肹H@UɋAĂSԐQ
B̗\B

2004/04/17 (Sat)
@QxoBς薰BlM}IƂwB̓X
cucwBmXyEniȂ肢B܂ł̂mXy
̒ňԗǂ̂́B̗\B


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

@\́@Ɩ@@|Q|

uccv
@ߑɖق荞ŁA؂Ɋ肩Bĉ悤
ɂށB
ucc̗ŔHv
u͂ȁȀo߂񂾁v
@nʂɎhA؂Ɋ肩B
uƂȁA܂͉̊oŋߋĂv
uȂƁv
uĂȂĂȂA͋ߋÂ߂Ă񂾁B
_oAf̑A񂪉̈oĂȂv
u܂AƑAĂƁHv
uł邩Hv
uccv
@̊́AɁwƖxƌĂB
u͓G̍Uɓ͂܂ŎԂB͂āAf
āA͂ł˂A]ĂɑUԂƂ
łBڋߐ͕ʂBȂłƂɔfKvv
ułAsa񂶂Ȃv
uSB񂪑ΊmȍUsv
uʂɉčsĂƁHv
uƂBݍ񂾂瓯ɉA炢łv
uccv
@sӂɓݍށB΂߂ɍ\B
ucc͉ȂȂv
ûȂccv
                                                              ()

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

@Version 13.17
^CŃNCbN\[g

uÓANCbN\[g֐Ă݂܂v
wċAĂяoĂĂƕGccx
uāA͂̊֐͕Kv܂v
wHx
uNCbN\[ǵAp̊֐^CɗpӂĂ邩łv
whAȂɖӖHx
uASY̕׋疳ӖȂ񂾂ǁccv
włȂ񂩖ʁ`x
ułAdg݂킩Ȃ\[gȂƂ̗R킩Ȃ
łv
whx
uAۂɍĂ݂邱ƂKvĂƁv
w[x
uāAł͂ꂩ烉^C̃NCbN\[gp֐ qsort() g
Ă݂܂v
w qsort() Â܂܂ˁx
uȂ݂ɃNCbN\[gȊÕ\[g֐͗pӂĂ܂v
wAႠ\[głȂx
uȂ񂾂ˁB炱܂g@ȂB܂͒uƂ
āA܂͎gĂ݂܂傤v

// rp֐B int Ŕr܂B
// ̕΃}CiXA
// ł 0 A
// ̕傫΃vXԂ܂B
int CompareTo( const void *p_pvL, const void *p_pvR )
{
    return *( (int *)p_pvL ) - *( (int *)p_pvR );
}

void Use_qsort()
{
    int iAry[5];
    iAry[0] = 4;
    iAry[1] = 9;
    iAry[2] = 3;
    iAry[3] = 5;
    iAry[4] = 8;

    // \[g܂B
    qsort( iAry, 5, sizeof( int ), CompareTo );

    for( int iF1 = 0; iF1 < 5; ++iF1 )
    {
        TRACE( "%d ", iAry[iF1] );
    }
    TRACE( "\n" );
    // 3 4 5 8 9 
}

wA݂I@Ałrp֐͕KvȂ񂾁x
uA Version 13.09 ( No.245 ) ̂Ƃ݂ɁBłɈႤ
v
wcc void |C^ŁA߂l int ccx
u qsort() gŁAFXȃ[邩A܂̂Ђ
Ă܂B܂͌ĂяoĂӏv

    // \[g܂B
    qsort( iAry, 5, sizeof( int ), CompareTo );

uP͔zAQ͂̔z̗vfAR̗͂vf̃T
CYAS͔rp֐ւ̃|C^v
wvfƃTCYAn񂾁x
u qsort() ̈ȁv

void qsort
    ( void *base
    , size_t num
    , size_t width
    , int (__cdecl *compare)(const void *elem1, const void *elem2) 
    );

uP void |C^Aevf̃TCY킩ȂƁq
vfrȂv
wA܂ł̃\[gĕʂ̌^̔z񂾂Avf̃TCY
킩ĂǁA qsort()  void ̃|C^ccāAȂ 
void |C^Ȃ́Hx
uȂႢȌ^gȂłv
wA CObArray Ɠˁx
uƁB void |C^́qėp^rƂĎg邩֗Ȃ
ˁB̕A댯Ȃ񂾂ǁv
wˁ[A^ԈႦG[ARpCƂɂ͂킩Ȃ
ccx
uĎɁArp֐ɂāv
wȂ񂩂₱ˁx

    , int (__cdecl *compare)(const void *elem1, const void *elem2) 

ǘAy֐|C^zƂĎ󂯎Ƃ̏v
w񂷂ۂ񂽁H@΃ASY̍ŏ̎ɌĂˁx
uA̕@gƊ֐ƂЂł邩AASY
ɂ͕֗Ȃłv
wmɁAƂēnƕ֗ˁccx
uႠÅ֐|C^̌ɂāv

    ߂l (ďo *ϐ)() 

uƂɂȂĂ܂v
wHx
uˁAʂɕϐƂĎgĂ݂悤v

void FunctionPointer()
{
    // ֐|C^B
    int (__cdecl *fp)(const void *elem1, const void *elem2);
    fp = CompareTo;

    int i50 = 50;
    int i100 = 100;
    // ֐|C^oRŌĂяoB
    TRACE( "%d\n", fp( &i50, &i100 ) );
    TRACE( "%d\n", fp( &i100, &i100 ) );
    TRACE( "%d\n", fp( &i100, &i50 ) );
    // -50
    // 0
    // 50
}

wƁA܂ fp ĕϐĂĂƁHx
uƁB CompareTo() ̊֐̃AhXϐ fp 
āA̒Ɋ֐̃AhXƁA fp  CompareTo() ̑
Ȃłv
wققAg΁Aǂ̊֐ĂԂAĂ̂ŕς
킯ˁx
uƁB֐|C^𒼂Ɉ̂͊댯炠܂g
ǁA@ĂƁv
wmɕ͕֗֗ˁx
uȂ݂ɁAΔ͂܂łɂȂǂ֐|C^gƂ
łv
whH@SRȂ񂾂ǁx
uEBhEvV[W_CAOvV[Wv
wccI@AĊ֐|C^nĂ񂾁Ix
u Version 8.07 ( No.149 ) ́v

    int iRet
        = DialogBox
            ( p_hInstance
            , MAKEINTRESOURCE( IDD_MAIN )
            , NULL
            , DialogProc
            );

úA DialogProc Ă֐|C^ƂēnĂłv
wƃbZ[W DialogProc() ĂœnAĂł
ˁBȂقǂˁ[x
u qsort() ̃EBhEvV[WA֐̒ĂԊ֐̃|
C^nĂłv
w₱ccx
u֐|C^̎Ȏgꂩȁv
wɎǵHx
uzɓėđɌĂяoƂv
whAȂ񂩊댯ȍ肪ccx
u܂ˁA C++ ł́y|[tBYzĂ̂āA
悤ȋ@\ƈSɎg@邩Aŋ߂͂܂gȂ
ȁv
w|[tBYA悭ǁccx
u܁A͍xˁBāAb߂āAx͔rp֐̂̂
݂܂v

// rp֐B int Ŕr܂B
// ̕΃}CiXA
// ł 0 A
// ̕傫΃vXԂ܂B
int CompareTo( const void *p_pvL, const void *p_pvR )
{
    return *( (int *)p_pvL ) - *( (int *)p_pvR );
}

w܂łƖ߂lƈ̌^ႤIx
u void |C^͐łv
w Version 13.13 ( No.249 ) ́Hx
uAƓB void |C^Ŏ󂯂΂ǂȌ^ɂłg邩
v
wH@ qsort() ̑PƓRHx
uRB qsort() ĂЂƂ֐łǂȌ^ł悤ɂ
ɂ́A void |C^ԊȒPˁv
wł댯AƁx
uƁv
w߂l int Ȃ̂͂ȂŁHx
ur@Bq傫rƁq菬rKvv
wRɕĂ킯ˁBłcc if gĂȂˁx

    return *( (int *)p_pvL ) - *( (int *)p_pvR );

wȂł́Hx
uqvXrƁq}CiXrāAmȐ͌߂ĂȂv
wA΁cc 1  100 Hx
uƁBPɈZ΂v
w΁A傫΃vXA΃}CiXAȂ 0 
ĂȂ킯ˁAȂقǁx
uƂ킩ɂAJɏĂˁBł͂܂Ƃ߁B
qsort() ͂ȂɊȒPɎg܂v
wzgAȒPˁccx
uȂ̂ŁANCbN\[gꍇɂ qsort() g܂傤v
ẃ[x
uɌ΁A\[gȂꍇɂ qsort() g܂傤v
wőˁx
uƁB̂łĝԂˁv

/*
    Preview Next Story!
*/
wσ^CƊȒPˁ[x
uāA̓}[W\[g̐܂v
w^CHx
u܂v
wƂ킯Ŏx
 Version 13.18 ԕ֗E}[W\[g 
uɂÂIv
w^CȂƂ[Ix
ułAl֐̗ĂĂ񂾂ǁccv
wAx


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

EقƂ́[ɂPbǉ\ ]
@炭҂܂I@قƂ́[ĊJ܂I@͐VLc
cۂLoꂵ܂By݂ɁII


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

