• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      IDL與VC信息相互傳遞的實現(xiàn)方法

      2015-08-18 11:12:36米云博熊顯名桂林電子科技大學電子工程與自動化學院廣西桂林541004
      關鍵詞:函數(shù)調用調用程序

      米云博,熊顯名,王 永(桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004)

      IDL與VC信息相互傳遞的實現(xiàn)方法

      米云博,熊顯名,王永
      (桂林電子科技大學電子工程與自動化學院,廣西桂林 541004)

      為了準確傳遞和保存IDL可視化數(shù)據(jù)信息,實現(xiàn)語言之間的互通性、資源共享性、數(shù)據(jù)信息的多樣性、調用格式的不同性,基于解析函數(shù)調用的方法,運用動態(tài)鏈接庫和一系列的子類函數(shù)獲取數(shù)據(jù),使IDL與VC之間相互轉換信息,可通過VC直接對遙感影像進行處理,為應用系統(tǒng)的研發(fā)提供了一種新方法。試驗實例證明,該方法能簡單有效地將IDL與VC有機地結合在一起,實現(xiàn)了信息相互傳遞,并通過C直接對遙感影像進行操作處理。

      交互式語言;高級語言VC;信息傳遞;解析函數(shù)調用

      0 引言

      隨著遙感技術的不斷發(fā)展,交互式語言(IDL)成為人們關注的重要語言[1],在眾多行業(yè)廣泛應用。由于大部分軟件和通信保存格式都是用高級語言C來編寫的,因此,將IDL和C語言有機地結合在一起,且不需要改寫原有的程序就能將遙感信息數(shù)據(jù)傳遞并保存,成為當前遙感領域急需解決的問題之一。C語言具有通用性、可擴展性、廣泛性強的特點[2],因此應用最為廣泛。目前,IDL與C語言的結合還比較少,各個國家都開展了IDL與C語言接口信息傳遞的研究,而中國在這方面還處在探討階段。因此,如何將IDL有效信息通過C語言傳遞并保存成為目前遙感領域以及高級語言領域里一個值得研究的方向。本文提出了一種函數(shù)調用方法,有效地實現(xiàn)了信息在IDL 與C語言之間的傳遞。

      1 開發(fā)語言的使用

      IDL是一種數(shù)據(jù)可視化面向矩陣的第4代交互式計算機語言,是集成可視化、大型商業(yè)開發(fā)、交互式分析為一體的高級開發(fā)環(huán)境[1]。IDL主要面向對象為可視化數(shù)據(jù)分析,它的語法結構簡單、功能強大、編程效率高,簡單的編程實現(xiàn)復雜的圖像分析,是跨平臺應用開發(fā)的最佳選擇,它提供的圖像類能夠快速地對圖像進行分析,可與OpenGL相媲美,因此被廣泛地應用在遙感領域中[3]。

      IDL支持各種操作系統(tǒng)平臺,具有很好的移植性,為與VC相結合提供了基礎。VC是微軟推出的運行非常穩(wěn)定、非常有影響力的專業(yè)級程序設計與數(shù)據(jù)處理語言。將IDL與VC有機地結合在一起,發(fā)揮各自優(yōu)點,以實現(xiàn)資源共享,使IDL的信息具有廣泛性和通用性。

      2 解析函數(shù)調用方法

      IDL為了擴充編程和數(shù)據(jù)處理能力,提供了應用程序接口(API)技術。利用API技術可方便地實現(xiàn)在IDL中調用 VC的可執(zhí)行文件、函數(shù)和程序。數(shù)據(jù)傳遞總體框圖如圖1所示。

      圖1 數(shù)據(jù)傳遞框圖

      2.1IDL調用 VC

      在IDL中調用VC可以使用3種方法:SPAWN方法、LINKIMAGE方法和CALL-EXTERNAL方法。利用SPAWN方法可以直接調用VC的可執(zhí)行文件,但是執(zhí)行調用不帶參數(shù)的SPAWN命令時,將調用Windows的DOS Shell命令窗口,使用時需要轉換。LINKIMAGE方法是通過系統(tǒng)所支持的動態(tài)鏈接接口完成程序調用任務,但使用此方法,開發(fā)者需要有豐富的 IDL內部知識,該方法不適合一般的開發(fā)者使用。利用 CALL-EXTERNAL方法能夠在IDL調用VC中精準地匹配數(shù)據(jù)結構,對于非結構數(shù)據(jù)的傳輸,不需要調用其他命令窗口,具有 LINKIMAGE方法的優(yōu)點,但不需要開發(fā)者對IDL內部特別熟悉,因此本文選用CALL-EXTERNAL方法來調用VC程序[4]。

      IDL程序能在運行時動態(tài)調用VC程序,通過CALL-EXTERNAL接口函數(shù)裝入共享目標庫實現(xiàn)函數(shù)調用,在 Windows平臺上,IDL通過動態(tài)鏈接庫技術來實現(xiàn),能夠方便地實現(xiàn)模塊化[5]。IDL調用動態(tài)鏈接庫遵循C語言中函數(shù)調用協(xié)議。任何的動態(tài)庫調用原型都被定義成 returntype()形式,返回值必須是CALL-EXTERNAL函數(shù)支持的數(shù)據(jù)類型。其中所有的參數(shù)都能以“傳值”或“引用”方式進行傳遞。程序編寫流程圖如圖2所示。

      根據(jù)流程圖編寫程序。調用VC輸入數(shù)據(jù)最終顯示結果如圖3所示。可以看出,該方法編寫的程序能夠很好地調用VC輸入的數(shù)據(jù),從而表明此方法的正確性、可行性。

      圖2 IDL調用VC程序流程圖

      圖3 IDL調用VC結果顯示圖

      2.2VC調用IDL

      利用IDL的API,可以實現(xiàn)VC調用IDL的命令、函數(shù)和數(shù)據(jù)。調用IDL的技術在操作系統(tǒng)中都會調用IDL的驅動程序,而驅動程序會存在于IDL動態(tài)鏈接庫中[6],調用時主要的3個環(huán)節(jié)如下。

      (1)初始化IDL。在調用IDL之前要對IDL進行初始化,使用 IDL_Win32Init()函數(shù)來對 IDL進行初始化,使用方法為:其中,abc取值為0保留參數(shù),后面兩個參數(shù)都是句柄,null也是一個保留參數(shù)取值為 NULL的數(shù),當初始化成功返回值為“TURE”。

      (2)VC應用程序中輸出在同一個邏輯窗口,當IDL被調用時,默認的輸出函數(shù)會被 IDL所覆蓋,需要通過IDL_ToutPush和 IDL_ToutPop來轉移 IDL的輸出結果到指定的函數(shù)中。IDL中提供了IDL_Execute()和 IDL_ExecuteStr()兩個函數(shù),用于在其他語言中調用 IDL語句,調用具體形式為;

      (3)在調用完IDL語句之后主函數(shù)執(zhí)行完之前,需要通過函數(shù) IDL_Cleaup來關閉IDL。調用方法為:

      int IDL_Cleaup(int just cleanup);

      根據(jù)IDL的調用方法在VC6.0的編譯環(huán)境下,通過動態(tài)鏈接庫實現(xiàn)一個能調用IDL的VC程序,程序編寫流程圖如圖4所示。

      根據(jù)流程圖編寫程序具體實現(xiàn)VC調用IDL,VC程序調用“IDL輸入”的結果,在 IDL編輯對話框輸入編輯內容,在VC編輯窗口點擊接收按鈕將“IDL輸入”數(shù)據(jù)顯示在VC編輯對話框的顯示框內,顯示結果如圖5所示。

      圖4 VC調用IDL流程圖

      圖5 VC調用IDL的效果圖

      3 實驗

      根據(jù)上述方法可知,IDL 與VC之間可以通過動態(tài)鏈接庫相互之間傳遞數(shù)據(jù),由于 IDL主要是 GUI界面,大部分是對圖像進行處理,因此對圖像數(shù)據(jù)信息的傳遞尤為重要。根據(jù)上述方法進行程序的編寫,使VC能夠接收IDL圖像并以VC的保存格式來保存IDL的數(shù)據(jù)信息,并直接對圖像處理,再將處理結果直接傳遞給 IDL。本文利用IDL編寫的水深反演軟件將處理的圖像信息按照上述方法傳輸給VC程序,利用VC來顯示IDL處理圖像的結果,如圖6和圖7所示。

      圖6 IDL水深反演軟件進行圖像處理結果圖

      圖7 VC調用IDL資源及圖像處理圖

      根據(jù)圖像顯示結果可知,IDL和VC可以相互轉換數(shù)據(jù),也可以將數(shù)據(jù)以它們各自的形式進行保存,從而說明IDL和VC可以很好地結合在一起,信息可以相互傳遞實現(xiàn)資源共享。

      4 結論

      本文介紹了將IDL和VC相互結合的方法,讓它們體現(xiàn)各自的特點,詳細描述了實現(xiàn)方法,并用實際例子來證明了本文方法的可行性和正確性。本文方法為IDL 和VC混合開發(fā)軟件提供了參考基礎,也為兩種語言的應用研究開發(fā)提供了一種新的思路和方法,對IDL和 VC資源共享的研究具有重要意義。

      [1]韓培友.IDL可視化分析與應用[M].西安:西北工業(yè)大學出版社,2006.

      [2]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2007.

      [3]陶治,張文濤,熊顯名,等.基于IDL生成XML文件實現(xiàn)信息傳遞的方法[J].桂林電子科學學報,2014,34(1):56-59.

      [4]RSI.IDL reference guide(First Edition)[M].American:RSI,2005.

      [5]徐爐清,頓敦.動態(tài)鏈接庫(DLL)的應用[J].機械與電子,1999(4):19-48.

      [6]李義才,汪新慶,劉志軍,等.IDL與 Visual C/C++語言進行混合編程的方法研究 [J].計算機應用研究,2011 (7):46-48.

      The method of achieving information transfer between IDL and VC

      Mi Yunbo,Xiong Xianming,Wang Yong
      (School of Electrical Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China)

      In order to accurately transfer and save the IDL visualization data information,achieve interoperability between different languages,resource sharing,the diversity of data information and the dissimilarity of call format,a new way has been provided for development of application system.It′s based on the method of a parsing function call,using dynamic link library and a series of subclasses function to get the data which can transfer information between IDL and VC and deal with remote sensing image by VC language directly.Verified by tests,this method unites IDL and VC together simply and effectively.It can achieve transformation of mutual information and deal with remote sensing image by C language directly.

      Interactive Data Language(IDL);advanced language VC;information transfer;call of parsing function

      TP79

      A

      1674-7720(2015)02-0080-03

      (2014-08-28)

      米云博(1987-),女,碩士研究生,主要研究方向:遙感技術應用以及圖像處理。

      熊顯名(1964-),男,本科,研究員,主要研究方向:光學測試及計算機技術。

      王永(1986-),男,碩士研究生,主要研究方向:遙感技術應用以及圖像處理。

      猜你喜歡
      函數(shù)調用調用程序
      基于C語言的數(shù)學菜單的設計與實現(xiàn)
      核電項目物項調用管理的應用研究
      試論我國未決羈押程序的立法完善
      人大建設(2019年12期)2019-05-21 02:55:44
      LabWindows/CVI下基于ActiveX技術的Excel調用
      測控技術(2018年5期)2018-12-09 09:04:46
      基于函數(shù)調用序列模式和函數(shù)調用圖的程序缺陷檢測方法*
      探討C++編程中避免代碼冗余的技巧
      “程序猿”的生活什么樣
      英國與歐盟正式啟動“離婚”程序程序
      Unity3D項目腳本優(yōu)化分析與研究
      中國新通信(2017年1期)2017-03-08 03:12:21
      基于系統(tǒng)調用的惡意軟件檢測技術研究
      开原市| 南岸区| 彰武县| 康定县| 陇西县| 永宁县| 阿城市| 屏东市| 河东区| 新巴尔虎左旗| 洪江市| 吉水县| 临沭县| 张掖市| 察哈| 玛沁县| 澎湖县| 滨州市| 钦州市| 江川县| 浠水县| 新化县| 云梦县| 老河口市| 隆安县| 冕宁县| 瑞金市| 鄂托克旗| 同德县| 临武县| 高唐县| 嫩江县| 岐山县| 肇东市| 海南省| 宁德市| 兴海县| 西城区| 翁源县| 珲春市| 旺苍县|