如何將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裏面,輸入參數,就可以直接跑了!



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