我們目前面臨的問題是,在使用Windows文件打開/保存對話框時,加載的外部組件(我們不知道是哪一個組件)會導致一些系統更改進程的區域設置,可能是撥打電話setlocale(LC_ALL, "")
。是否可以在進程中禁用setlocale()?
這弄亂了我們的應用程序,因爲它依賴於設置的標準語言環境(在運行時我們自己的任何組件都不會改變它)。
因此,我們需要確保在進程中調用setlocale()
時沒有任何影響,或者我們需要檢測何時調用此函數,然後將區域設置重置爲默認的「C」語言環境。
有沒有辦法達到這些目標之一?
你可以把一個斷點庫函數 - 請參閱https://stackoverflow.com/questions/3080624/debug-break-on-win32-api-functions – sashoalm 2014-09-29 14:06:57
@sashoalm謝謝,但不幸的是,我們無法調試此問題,因爲它不會在任何開發PC上發生。即使它確實存在,我們也知道這個組件,但它並不能真正幫助保護這個過程免受這些變化。 – floele 2014-09-29 14:08:59
嘗試使用蹦牀然後 - https://stackoverflow.com/questions/189725/what-is-a-trampoline-function – sashoalm 2014-09-29 14:57:35