DETOUR_TRAMPOLINE(FARPROC WINAPI MyGetProcAddress2( IN HMODULE hModule, IN LPCSTR lpProcName ), GetProcAddress);
FARPROC WINAPI MyGetProcAddress1( IN HMODULE hModule, IN LPCSTR lpProcName )
{
if(detr<100)
{
if (lstrcmpiA("Direct3DCreate9", lpProcName) == 0 )
return MyGetProcAddress2(hModule,"Direct3DCreate9" );
}
detr++; //这是一个全局变量
return MyGetProcAddress2(hModule,lpProcName);
}
我使用detours已经成功拦截住了这个函数,目的是打算在里面比较字符串,如果是我想要的函数就改成我的。但是如果我把if(detr<100)这句话去掉(即每一次调用都比较字符串),程序就会出错。总之,它就是在我比较次数不多的时候可以正常运行。不知道这是为什么啊?
FARPROC WINAPI MyGetProcAddress1( IN HMODULE hModule, IN LPCSTR lpProcName )
{
if(detr<100)
{
if (lstrcmpiA("Direct3DCreate9", lpProcName) == 0 )
return MyGetProcAddress2(hModule,"Direct3DCreate9" );
}
detr++; //这是一个全局变量
return MyGetProcAddress2(hModule,lpProcName);
}
我使用detours已经成功拦截住了这个函数,目的是打算在里面比较字符串,如果是我想要的函数就改成我的。但是如果我把if(detr<100)这句话去掉(即每一次调用都比较字符串),程序就会出错。总之,它就是在我比较次数不多的时候可以正常运行。不知道这是为什么啊?
解决方案 »
- 请教下, 假设我每个小时收到随机个数的数,如何取出没小时最后那个数
- 析构函数删除指针时遇到问题有问题,请问该怎么解决?
- 请教cpu的测试办法
- 请问如何存取IP地址
- 有关文件传输,为什么在程序中设置一断点然后按住F5传输正常,而断点一去掉直接运行,传输就中断,不传了。。。
- MFC设置线条透明度
- 高分求《Visual C++ 6.0 数据库编程大全》的配套示例代码
- 怎样做高程考试下午的c语言题,太难了!
- <<深入浅出2>>书中的问题1?????
- CTreeCtrl 控件中内容显示不完全……
- ON_EVENT(CZxhDrawLineInMapView, IDC_MAP, -605 /* MouseDown */, OnMouseDownMap, VTS_I2 VTS_I2 VTS_R4 VTS_R4???
- 突然想整体了解GDI+
我要是把
if(detr <100)
{
if (lstrcmpiA("Direct3DCreate9", lpProcName) == 0 )
return MyGetProcAddress2(hModule,"Direct3DCreate9" );
}
这去掉,程序也能正常运行啊。