現象:MFC 程式第一次啟動失敗,**不關閉第一個實例**的情況下第二次啟動卻正常;關閉第一個實例後再啟動又失敗。
CreateMutex 檢查 ERROR_ALREADY_EXISTS 判斷是否已運行實例,但首次建立失敗卻未正確清理/報錯,導致後續實例誤以為資源就緒。InitInstance 關鍵步驟輸出詳細日誌(檔案/OutputDebugString),記錄每個 API 返回值與 GetLastError()。/debug 直接斷點調試。CMutex/CreateMutex 邏輯:首次建立失敗需返回 FALSE 終止啟動,不得繼續執行。**「不關閉第一次才能成功」強烈暗示第一次留下了第二次所需的資源狀態**。優先檢查「共享核心物件建立/開啟」與「單例檢查」邏輯,加上完整錯誤碼日誌即可定位根因。