24Oct/11Off
Linux C/C++ IDE slickedit 破解
version: linux 32bit 16.0.3.0
slickedit/bin/vs 偏移 0x190F0 处 0F B6 45 D7( 83 C4 4C 5B 5E 5F 5D C3 8B 75 C4 C6) 改为 B0 01 90 90
参考 http://zhiwei.li/text/2011/05/slickedit-2011/
谁能教我这个地址是怎么找到的!?
29Oct/10Off
基类与派生类互转时需要注意void*类型
// Test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
class A
{
public:
A():a(0){}
int a;
void FnA(){printf("A %d\n",a);}
virtual void VFnA(){printf("VA %d\n",a);}
};
class B
{
public:
B():b(1){}
int b;
void FnB(){printf("B %d\n",b);}
void FnB2(){printf("B2 %d\n",b);}
virtual void VFnB(){printf("VB %d\n",b);}
};
class C
{
public:
C():c(2){}
int c;
void FnC(){printf("C %d\n",c);}
void FnC2(){printf("C2 %d\n",c);}
void FnC3(){printf("C3 %d\n",c);}
virtual void VFnC(){printf("VC %d\n",c);}
};
class T : public A, public B, public C
{
public:
void FnT(){}
virtual void VFnA(){printf("TVA %d\n",a);}
virtual void VFnB(){printf("TVB %d\n",b);}
virtual void VFnC(){printf("TVC %d\n",c);}
};
void Fn(C* c)
{
c->FnC();
}
void Fn2(void* p)
{
C* pC = (C*)p;
pC->FnC3();
}
void Fn3(void* p)
{
C* pC = (C*)p;
printf("Fn3:c=%d ",pC->c);
pC->VFnC();
}
int _tmain(int argc, _TCHAR* argv[])
{
T t;
A* pA = &t;
B* pB = &t;
C* pC = &t;
Fn(&t);
Fn2(&t);
Fn2((B*)&t);
Fn3(&t);
Fn3((B*)&t);
return 0;
}
//结果
//C 2
//C3 0
//C3 1
//Fn3:c=0 TVA 0
//Fn3:c=1 TVB 1

