VS2008 專案用 MSChart (MSCOMCTL.OCX),目標機安裝 `MSChart.exe` 並 `regsvr32 MSCOMCTL.OCX` 仍報內存錯誤。原因:OCX 註冊表鍵值缺失或路徑錯誤(特別是 64 位系統)。
完整註冊步驟(管理員 CMD)
- 複製 `MSCOMCTL.OCX` 到 `C:\Windows\SysWOW64\`(64 位系統 32 位 OCX 必須放這裡)。
- `regsvr32 C:\Windows\SysWOW64\MSCOMCTL.OCX` → 彈窗「成功」。
- 檢查註冊表:
`HKEY_CLASSES_ROOT\CLSID\{...}\InprocServer32` 默認值 = `C:\Windows\SysWOW64\MSCOMCTL.OCX`。
若路徑指向開發機路徑(如 `D:\Dev\...`),手動修正。
- 若專案用 `MSCHRT20.OCX`(舊版圖表),同理註冊並修正路徑。
避坑清單
- 目標機**必須安裝 VB6 運行時**(`VB6Runtime.exe`),MSChart 依賴它。
- 專案屬性 → Components → 勾選 `Microsoft Chart Control 6.0`,生成的 `.dep` 文件會包含正確依賴。
- 打包安裝程式時用 **Inno Setup / NSIS** 含註冊腳本,勿只給 OCX 文件。