在 Windows 8.1 + Visual Studio 2013 環境下開發 MFC 程式,編譯為靜態庫的 Release 版本。程式在開發機上運行正常,但部署到其他電腦後,一旦使用 TCP/IP 發送數據即發生崩潰。
雖然選擇了靜態鏈接(/MT),但目標電腦若缺少對應的 Visual C++ Redistributable 或系統更新,仍可能導致崩潰。建議檢查目標機是否安裝了 Visual C++ 2013 Redistributable (x86/x64)。
TCP/IP 通訊極易被第三方安全軟件誤判為可疑行為並強制終止進程。排查步驟:
• 暫時關閉目標機防火牆與殺毒軟件測試;
• 在防火牆中添加程式的入站/出站允許規則;
• 檢查 Windows Defender 或企業級端點防護策略。
使用 Dependency Walker 或 Process Monitor 監控程式啟動與網絡調用過程,確認是否有隱式依賴的 DLL(如 ws2_32.dll、mswsock.dll 等)加載失敗。
靜態鏈接不代表線程安全。檢查 Socket 操作是否在非 UI 線程中正確同步,避免跨線程訪問 MFC 控件導致未定義行為。
WSAGetLastError())。