其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
编码心得:为什么我的单件(Singleton)对象会有两个地址呢?

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

最近编码遇到个问题,浪费了我近一天的时间才找出答案。
我的程序分A,B,C三个模块,每个模块编译成DLL。C模块是用Singleton模式,A,B模块分别用到,然而运行起来发现模块C工作不正常。模块C已经经过了单元测试,并在其他程序上一直很好的运行,没发现什么bug。一切看起来都没问题,就这样,十分苦恼的过了一个早上,毫无头绪。
后来,我分别在A,B模块中打印C对象的地址,惊奇的发现它们分别打印出来的地址竟然不同!也就是说,我的单件实作了两个对象!这简直是不可能的事情!我猛然省悟到有可能是DLL的版本不同,去看工程文件,果然,模块A是用的Release版本,模块B却是用的Debug版本,结果AB两个模块调用的DLL是不一样的,这就难怪为什么会有两个地址了。修改过来,问题解决。

就是这个本身代码没有错误,只是因为疏忽导致的Bug,让我一天毫无产出,非常沮丧。公布出来,希望各位看客不要重蹈覆辙。

(Noiile)




相关文章

相关软件