编码心得:为什么我的单件(Singleton)对象会有两个地址呢?

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

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

(Noiile)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值