錯誤碼含義
0xC000007B = STATUS_INVALID_IMAGE_FORMAT:嘗試加載 32 位 DLL 到 64 位進程,或反之;或依賴 DLL 缺失/版本不匹配。
排查步驟
- 確認編譯目標平台:項目屬性 → Platform Target(x86/x64)與 OpenSSL 库位數一致。
- 使用 Dependency Walker (depends.exe) 打開生成的 .exe,查看紅色缺失的 DLL(通常是
libeay32.dll, ssleay32.dll 或 VC++ 運行時 MSVCR120.dll)。 - 將所需 DLL 複製到 .exe 同級目錄,或加入系統 PATH。
- 若靜態鏈接 OpenSSL,確保
MT/MTd 運行時庫一致(項目屬性 → C/C++ → Code Generation → Runtime Library)。
常見誤區
- 以為安裝了 OpenSSL 就能用,實際需手動部署動態庫。
- 混用 32 位庫與 64 位編譯目標。