前文VC使用COM_idl_connect进行IDL混编只能在安装有IDL的机器运行,不利于程序的部署
将IDL文件夹全部复制的目标机器,将license.dat文件复制到与bin,external,lib等文件夹一个文件夹下,当然这里需要单机版的license
(如果只需要部分功能运行简单的.sav文件可以选择拷贝小部分文件)
如:
IDL
│ license.dat
│
├─bin
│ └─bin.x86
│ freetype2_3_6.dll
│ idl.dll
│ idl_bml.dll
│ idl_gmem.dll
│ idl_gmem.dlm
│ idl_ipcclient.dll
│ idl_ops.dll
│ idl_opserver.exe
│ idl_pal_mscom.dll
│ MesaGL6_2.dll
│ MesaGLU6_2.dll
│ osmesa6_2.dll
│ ug3220.dll
│
├─lib
│ └─bridges
│ idl_connect__define.sav
│
└─resource
└─bridges
└─export
└─COM
COM_idl_connect.dll
关键 修改以下注册表项
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ITT]
[HKEY_LOCAL_MACHINE\SOFTWARE\ITT\ENVI]
[HKEY_LOCAL_MACHINE\SOFTWARE\ITT\ENVI\4.8]
"InstallDir"="C:\\IDL80\\products\\envi48\\"
"Version"="4.8.0.0"
[HKEY_LOCAL_MACHINE\SOFTWARE\ITT\IDL]
[HKEY_LOCAL_MACHINE\SOFTWARE\ITT\IDL\8.0]
"InstallDir"="C:\\"
"Version"="8.0.0.0"
其中InstallDir是安装目录,也即移植目标机器的IDL目录(例如,设IDL80目录在C盘根目录下则IDL的InstallDir为C:\),8.0是IDL版本,可根据实际情况更改即可~