1. 程式人生 > >使用USES_CONVERSION寫中文至登錄檔變成亂碼的原因

使用USES_CONVERSION寫中文至登錄檔變成亂碼的原因

有的時候在英文版本的作業系統中,dll實現檔案裡面使用USES_CONVERSION,將ascii的中文字串轉為unicode型別,寫入登錄檔,會引起亂碼,原因是:

使用atlconv.h中的A2T函式導致,字串轉換使用了當前執行緒的預設 ANSI 內碼表執行,儲存登錄檔後顯示為亂碼 

解決的辦法是:

在dll編譯選項中新增上巨集_CONVERSION_DONT_USE_THREAD_LOCALE ,即可以正常顯示與讀取