: ν¨μλ₯Ό νΈμΆνλ κ·μ½μ΄λΌλ κ²μ΄ μλ€.
cdecl , stdcall , thiscall μ΄ μλλ°
ν΄λμ€μ λ©€λ²ν¨μλ₯Ό νΈμΆν λ , thiscall μ μ¬μ©νλ€.
λλ¨Έμ§λ λ€μ΄λ² λΈλ‘κ·Έλ‘ κ³ κ³ κ³ !!
ν΄λμ€μ λ©€λ²ν¨μλ μ½λ μμμ μ μ₯λ¨.
κ°μ²΄ μμ±μ ν λΉλλ λ©λͺ¨λ¦¬ μμμ μ‘΄μ¬νμ§ μλλ€.
λ©€λ² ν¨μλ μ½λ μμμ μκ³ , νΈμΆμ, ν΄λΉ κ°μ²΄μ this ν¬μΈν°κ° μ λ¬λλ©΄μ νΈμΆλλ€.
μ¦ , κ°μ²΄μ μν΄μμ§λ§, μ½λ μμμ λ¨ νλλ§ λ§λ€μ΄μ§λ€.
μ½λ μμμ΄λ?
-> λ€μ΄λ² λΈλ‘κ·Έ wspμ code / text μ΄μ λΈλ¬ μ μ₯μ μκ°νμ.
νλ‘μΈμ€κ° μ€νν μ½λμ 맀ν¬λ‘ μμκ° κΈ°κ³μ΄ ννλ‘ μ μ₯λλ 곡κ°.
νλ‘κ·Έλ¨μ΄ μμνκ³ , μ’ λ£λ λκΉμ§ λ©λͺ¨λ¦¬μ κ³μ λ¨μ μμ.
μ»΄νμΌ νμμ κ²°μ λκ³ , μ€κ°μ μ½λ λ³κ²½μ΄ λΆκ°νκ²
read onlyλ‘ λμ΄ μμ.
class Point
{
public :
void Set(Point* this, int _x, int _y)
{
this->x = _x;
this->y = _y;
}
}
-> νΈμΆ μ μ€μ λ‘λ μ΄λ° ννλ‘ νΈμΆλ¨.
Set(&κ°μ²΄λͺ , , );
: thisν¬μΈν°λ₯Ό μ΄μ©ν΄ ν΄λμ€μ λ©€λ²ν¨μλ₯Ό νΈμΆνλ κ³Όμ μ λ§ν¨.
: Point ν΄λμ€μ set ν¨μλ₯Ό λ§λ€κ³ , μ΄μ
λΈλ¬λ₯Ό ν΅ν΄ set νΈμΆνλ κ³Όμ μ
νμΈνλΌ.
- μ΄μ λΈλ¬λ‘ setνΈμΆνλ κ³Όμ νν
: p1.set(10,20);
push 20
push 10
mov ecx &p1 //λ§μμμλ leaλ‘ μ¬μ©νκ³ μμμ νμΈν μ μμ.
call Point::set
: κ°μ²΄μ λ©€λ²λ°μ΄ν°λ this ν¬μΈν°λ₯Ό μ΄μ©ν΄ μ κ·Όνλ κ²μ νμΈν μ μμ.
:
static λ©€λ²ν¨μλ Data μμμ μν¨.
static λ©€λ²ν¨μλ λ΄λΆμ μΌλ‘ thisμΈμκ° μμ.
thiscall μ΄ μλκΈ° λλ¬Έμ ν΄λΉ κ°μ²΄μ λ©€λ² λ°μ΄ν°μ ν¨μλ‘ μ κ·Όμ΄ λΆκ°ν¨.
μλνλ©΄, κ°μ²΄ λ΄μ λ©€λ²λ°μ΄ν°λ this ν¬μΈν°λ₯Ό ν΅ν΄μλ§ μ κ·Όμ΄ κ°λ₯νλ―λ‘.
μλ μ½λλ₯Ό 보면, Point μ λ©€λ²λ°μ΄ν° μ κ·Ό λͺ»νκ³ μλ κ²μ νμΈν μ μμ.
μ΄μ
λΈλ¬λ₯Ό νμΈν΄λ³΄λ©΄, this ν¬μΈν°κ° μ¬μ©λκ³ μμ§ μμ. μ νμΈν μ μμ.