SetupDiCallClassInstaller函數32-bit版本在64-bit環境執行會錯誤的問題
以USB裝置來說,在不插拔的情況下要改變作業系統記錄的裝置狀態,用程式的方式就是執行SetupDiSetClassInstallParams與SetupDiCallClassInstaller函數。
今遇到WinXP及Win7 32-bit的作業系統,執行這兩個命令沒有狀況,但Win7 64-bit的環境下卻會出現錯誤的問題!!一開始解決的想法是將BCB 6寫的程式改成以BCB 2010重Build,看可不可以得到64-bit的執行碼以解決問題。無奈BCB要到XE2才有支援Build 64-bit執行檔的版本,公司最新的BCB版本只有2010。
後來想想便將這部份的程式碼獨立出來,以Visual Studio 2010單獨Build一支Console Mode的程式,和主程式以Share Memory的方式相互溝通程式執行狀況,就此解決了一個32/64 bit程式碼不相容的問題。
沒有留言:
張貼留言