DllMain函数不特殊
来源:互联网 发布:fc2最新域名网站 编辑:程序博客网 时间:2024/04/30 12:04
摘要:毕竟DllMain只是一个普通函数,它的生命周期不长,如同普通函数一样,在它里面定义的局部变量a函数结束后也结束了,线程中引用的a的地址现在指向一块废弃的内存。
我们创建DLL,免不了要和DllMain函数打交道,初学者也许会觉得这个DllMain函数和我们创建exe程序时的main、WinMain函数一样,跟其他普通函数相比有那么一点特别。其实不然,main函数作为exe程序的入口函数,整个程序从进入它时开始,到退出它时结束,可以说程序的整个生命周期都是在main函数里完成的。DllMain函数就一般的多了,除了在DLL被加载时要运行DllMain这一点特别之处外,这个函数与一般的函数毫无区别。下面以一个我在工作中犯的错误为例,希望读者能更好的理解DllMain。
先看正常程序,在exe中
运行结果如同期待的那样:
再来看看下面这个是用DLL的程序:
在useDLL.cpp中调用:
运行useDLL.exe结果如下: a 的值错了!为何如此,道理很简单,毕竟DllMain只是一个普通函数,它的生命周期不长,如同普通函数一样,在它里面定义的局部变量a函数结束后也结束了,线程中引用的a的地址现在指向一块废弃的内存,所以a值就变得没有意义了。 如果想要是a的值正确,只要在DLL中将a定义为全局变量就可以了。 这么个低级的错误,花了我一个多小时才找到原因,现记录下来,提醒自己。
- DllMain函数不特殊
- DllMain函数
- DllMain函数
- DllMain函数
- DLLMain函数
- dllmain不被调用
- DLL入口函数DllMain
- DLL 的DllMain函数
- dll中的dllmain函数
- DllMain函数的运用
- DllMain函数详解
- DllMain函数详解
- DllMain函数参数简介
- DLL入口函数DllMain
- DLL专题之DllMain函数
- DLL入口点函数DllMain
- DLL的DllMain入口函数
- DLL入口点函数DllMain .
- 开始
- 利用边界跟踪计算多个对象的直径和中心(一)
- 如何在仅仅启动HDFS情况下处理HDFS中的文件
- javascript AJAX 中文
- ejb常见面试题
- DllMain函数不特殊
- INTERNAL ERROR 2739错误
- Note
- 美国Android占28%份额 摩托Droid最受欢迎
- Myeclipse8.0下配置Spket
- rhce之路--linux的基本命令
- 在eclipse中生成英文的javadoc(转自:http://zyp731.javaeye.com/blog/98432)
- 关于重启系统服务
- 数据库方面常见面试题