如何将IDL转换成EXE(C#)

有的时候,我们需要将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里面,输入参数,就可以直接跑了!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章