編碼心得:為什麼我的單件(Singleton)對象會有兩個地址呢?

來源:互聯網
上載者:User

最近編碼遇到個問題,浪費了我近一天的時間才找出答案。
我的程式分A,B,C三個模組,每個模組編譯成DLL。C模組是用Singleton模式,A,B模組分別用到,然而運行起來發現模組C工作不正常。模組C已經經過了單元測試,並在其他程式上一直很好的運行,沒發現什麼bug。一切看起來都沒問題,就這樣,十分苦惱的過了一個早上,毫無頭緒。
後來,我分別在A,B模組中列印C對象的地址,驚奇的發現它們分別列印出來的地址竟然不同!也就是說,我的單件實作了兩個對象!這簡直是不可能的事情!我猛然省悟到有可能是DLL的版本不同,去看工程檔案,果然,模組A是用的Release版本,模組B卻是用的Debug版本,結果AB兩個模組調用的DLL是不一樣的,這就難怪為什麼會有兩個地址了。修改過來,問題解決。

就是這個本身代碼沒有錯誤,只是因為疏忽導致的Bug,讓我一天毫無產出,非常沮喪。公布出來,希望各位看客不要重蹈覆轍。

(Noiile)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.