HINSTANCE hinstancee;
typedef VOID (CALLBACK* LPFNDLLFUNC1)(VOID);
LPFNDLLFUNC1 lpfnDllFunc1,pl2;
hinstancee= LoadLibrary("dll.dll");
lpfnDllFunc1=(LPFNDLLFUNC1)GetProcAddress(hinstancee, "jianpanhook");
pl2=(LPFNDLLFUNC1)GetProcAddress(hinstancee, "xiezai");
pl2();lpfnDllFunc1(); 这句代码运行后为什么会崩溃?
typedef VOID (CALLBACK* LPFNDLLFUNC1)(VOID);
LPFNDLLFUNC1 lpfnDllFunc1,pl2;
hinstancee= LoadLibrary("dll.dll");
lpfnDllFunc1=(LPFNDLLFUNC1)GetProcAddress(hinstancee, "jianpanhook");
pl2=(LPFNDLLFUNC1)GetProcAddress(hinstancee, "xiezai");
pl2();lpfnDllFunc1(); 这句代码运行后为什么会崩溃?
解决方案 »
- 求一个网络协议分析器的毕业论文
- 关于VC6.0++网上版本和光盘安装问题
- 最小化的问题
- Matlab/Simulink 与 VC++
- 如何对COM10以上的串口进行读写操作阿!急!谢谢了!!!
- 如何把一个item从Listview拖放到一个TreeView中?
- 没分了,哪个兄弟给我赞助点?
- 如何将一个菜单项不可见,如何将一个数四舍五入
- debug和release究竟有什么本质区别啊?
- 请假ole数据库执行的问题。
- 数据array 有如下数据{北京,重庆,上海...} 输入的字符串中如是:"欢迎来到北京..." 如何验证:"欢迎来到北京..." 是否包含array中的字符串
- 如何点击按钮把EDIT中的内容Ctrl+C?
dll你自己写的吗?
hinstancee= LoadLibrary("dll.dll");
lpfnDllFunc1=(LPFNDLLFUNC1)GetProcAddress(hinstancee, "jianpanhook");
pl2=(LPFNDLLFUNC1)GetProcAddress(hinstancee, "xiezai");
应该先判断一下是不是成功了。
1.dll中没有jianpanhook这个函数, lpfnDllFunc1为NULL
2. jianpanhook 这个函数的参数不是无参的.
3. 最可能的: jianpanhook 这个函数的调用方式是 __stdcall , 而lpfnDllFunc1的调用方式是其他.
4. pl2在内部修改了内存(或删除), jianpanhook 又访问了这些内存,可能这些内存已经非法,so......
如果是非法指针,程序肯定会崩溃