2010-12-24 12 views
1

'this'キーワードの正確な意味がIDAプロ擬似C++コードに含まれているのでしょうか。IDA pro 'this'キーワード

私は、関数呼び出しを持っていることを言うことができます:この関数を呼び出す

v2 = sub_100010B3((int)&v12, "QtGui4.dll"); 

int __thiscall sub_100010B3(int this, const char *Str1) 
    { 
    int result; // [email protected] 
    int v3; // [email protected] 
    int v4; // [sp+0h] [bp-8h]@1 
    int v5; // [sp+4h] [bp-4h]@1 

    v4 = this; 
    v5 = sub_10001090(this, 1); 
    if (v5) 
    { 
    while (*(_DWORD *)(v5 + 16)) 
    { 
     v3 = sub_10001470(v4, *(_DWORD *)(v5 + 12)); 
     if (!stricmp(Str1, (const char *)v3)) 
     return v5; 
     v5 += 20; 
    } 
    result = 0; 
    } 
    else 
    { 
    result = 0; 
    } 
    return result; 
} 

[OK]を、関数の中で私たちは「このint型の定義を見ることができるように応じていますdocsは、オブジェクトを呼び出すために使用されるオブジェクトへのポインタです。私が思っているのは、同じように動作するが、 'this'パラメータを渡す必要がないように関数を書き直す方法です。

答えて

4

thiscallはあなたが

class MyClass { 
    int sub_100010B3(const char* Str1); 
}; 

MyClass::sub_100010B3(const char* Str1) 
{ 
    // .. implementation 
} 
+0

としてそれを書き換えしたいと思うので、それはクラスのメンバ関数であることを意味し 'sub_100010B3'はおそらく、マングルされた名前です。 –

+0

sub_100010B3は、IDA Proがルーチンをバイナリを逆アセンブルするときに指定する名前です。関数の元の名前とは関係ありません。 – jcopenha

+0

jcopenhaありがとうございます。クラスを静的にすることはできますか? – flavour404

関連する問題