有的时候,我们需要将IDL的SAV文件或PRO文件转换成EXE文件,比如,有的IDL图像处理算法,需要输入输出图像参数,而这时候,我们根据要求需要转换成EXE形式,更易于方便移植和操作。下面我们以一个IDL算法为例,来讲述如何将IDL程序变成exe形式。
首先,建立一个控制台程序:
然后,导入COM_IDL_CONNECT或COM_IDL_connect_x86_64组件,这两个组件作用类似,但一个是32位的一个是64位的,由于我的IDL装在C盘,这两个组件在C:\Program Files\Exelis\IDL83\resource\bridges\export\COM目录下,找到后,添加引用,即可完成
加完以后,开始在main函数里面开始写代码,先加入这两句
COM_IDL_connectLib.COM_IDL_connect oCom = new COM_IDL_connectLib.COM_IDL_connect();
oCom.CreateObject(0, 0, 0);
加完以后,我们需要执行,pro文件或sav文件,所以我们必须将这两个文件放到指定的目录下,这里我放到的是程序bin下面的debug下面,即和exe是一个文件下面,我用一下代码实现,获取pro或sav文件
string dllPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path1 = Path.GetDirectoryName(dllPath);
string proPath = path1 + "\\Vegetation_Extracting.pro";
获取文件路径以后,我们就可以执行了
oCom.ExecuteString(".compile '" + proPath + "'");注意,如果是sav文件,就改为oCom.ExecuteString("resore,
'" + proPath + "'");
到这里,只是调用IDL组件成功,如果后面还有IDL程序还有要输入的参数的话,我们还需要进一步执行
string a = "Vegetation_Extracting,'" + args[0] + "','" + args[1] + "','" + args[2] + "'";
注意这里,args[0],args[1],args[2]就是我们要输入或者输出的参数,可能很多人问,这在哪输入的,哈哈,在这里
好,如果,参数输入的对的话,我们就可以执行了
oCom.ExecuteString(a);
这样,如果成功的话,那么IDL就成功转换成EXE了,然后我们用生成好的EXE就可以放到CMD里面,输入参数,就可以直接跑了!