我正在用一些全局數據創建一個C++ Win32 dll。有一個全局定義的std :: map,並且在dll中有導出的函數將數據寫入地圖(在獲取寫鎖之後)。通過導出的dll函數訪問dll中的全局數據
我的問題是,當我從DLL DllMain中調用寫函數時,它的工作原理沒有任何問題。但是,當我從另一個程序加載的dll和調用數據寫入全球地圖的功能,它給了我這個錯誤:
WindowsError: exception: access violation reading 0x00000008
有什麼可約這樣做?從DllMain調用同樣的函數可以訪問dll中的全局數據,但是當從不同的進程調用時,它不能訪問全局數據。請指教。
我正在使用TDM-MinGW gcc 4.4.0編譯器。
編輯: 好吧,我想通了,問題是什麼,並感謝幫助球員,但問題是沒有用的構造問題,或者無法在全球空間的地圖,但在一個問題我使用的boost :: python。我已經測試過,但由於我是從python或其他東西中調用dll,所以urllib2模塊並沒有被加載到dll中。現在我必須看到如何解決它。
這可能是一個好主意,寫出你的決議作爲答案並接受它,這樣的問題被記錄爲「回答」。要麼或接受最有用的現有答案。 – RBerteig 2009-07-31 06:59:19