调试DLL的另类方法

本文介绍了一种解决DLL入口函数中断问题的独特方法,通过修改内部变量的值来实现程序正常运行,适用于VS2010环境及Windows 7系统。

        前言: EXE是别人的,DLL我做。网上找了N多方法,都不会用啊(看来我比较笨)。最后想到一个另类的方法,看代码:

int _plugin_proc(EPluginMsgType eMsgType,void* param1,void* param2)
{
	float x,y;
	CString str;

	static int i=9, j=0;
	i = i/j;  //重点,你懂的。代码要跑过这里,得修改J的值,所以不能是i=i/0;
//your code ........
}
        这是DLL的入口函数,就是DEF文件那个导出函数。

        说明,当代码运行到这里时(i = i/j),就是被中断,因为 j =0了,这个时候,就会出现程序出错,你点调试,然后,选用你写DLL代码的那个VS。注意:代码停到这里时,要把J=0改为其它值哦,这样,代码才能继续跑,如果仍要停,你懂的。(在变量处直接修改就好了)


      还有,一些全局变量的初始化是没办法调试的,因为代码最初运行时,是先全局变量,然后,才是入口函数(我在全局变量里面试过,不行耶,具体原因,得看汇编比较过才懂)。不过,你可以尝试下那些全局的代码放在入口处。


开发环境:VS2010环境+WIN 7



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值