《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > IDL與VC信息相互傳遞的實現(xiàn)方法
IDL與VC信息相互傳遞的實現(xiàn)方法
2015年微型機(jī)與應(yīng)用第2期
米云博,熊顯名,王 永
(桂林電子科技大學(xué) 電子工程與自動化學(xué)院,廣西 桂林 541004)
摘要: 為了準(zhǔn)確傳遞和保存IDL可視化數(shù)據(jù)信息,實現(xiàn)語言之間的互通性、資源共享性、數(shù)據(jù)信息的多樣性、調(diào)用格式的不同性,基于解析函數(shù)調(diào)用的方法,運(yùn)用動態(tài)鏈接庫和一系列的子類函數(shù)獲取數(shù)據(jù),使IDL與VC之間相互轉(zhuǎn)換信息,可通過VC直接對遙感影像進(jìn)行處理,為應(yīng)用系統(tǒng)的研發(fā)提供了一種新方法。試驗實例證明,該方法能簡單有效地將IDL與VC有機(jī)地結(jié)合在一起,實現(xiàn)了信息相互傳遞,并通過C直接對遙感影像進(jìn)行操作處理。
Abstract:
Key words :

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

  關(guān)鍵詞交互式語言高級語言VC信息傳遞;解析函數(shù)調(diào)用

0 引言

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

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

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

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

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

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

001.jpg

  2.1 IDL調(diào)用VC

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

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

003.jpg

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

  2.2 VC調(diào)用IDL

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

  (1)初始化IDL。在調(diào)用IDL之前要對IDL進(jìn)行初始化,使用IDL_Win32Init()函數(shù)來對IDL進(jìn)行初始化,使用方法為:

  int IDL_Win32Init()(int abc,void*hst,void*use,void*null);

  其中,abc取值為0保留參數(shù),后面兩個參數(shù)都是句柄,null也是一個保留參數(shù)取值為NULL的數(shù),當(dāng)初始化成功返回值為“TURE”。

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

  int IDL_Execute(int argc,char*nrcv[]);

  int IDL_Execute(char*comd);

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

  int IDL_Cleaup(int just cleanup);

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

004.jpg

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

005.jpg

3 實驗

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

006.jpg

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

4 結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

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


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99国内精品久久久久久久软件| 亚洲美女啪啪| 亚洲二区免费| 国产一区欧美| 国产日本欧洲亚洲| 国产精品中文字幕欧美| 国产精品爽爽ⅴa在线观看| 国产精品久久久久久久一区探花 | 国产精品毛片在线看| 国产精品电影在线观看| 国产精品国产福利国产秒拍| 欧美午夜精彩| 国产精品视频男人的天堂| 国产精品久久久久久一区二区三区 | 久久精品官网| 久久精品理论片| 久久精品亚洲乱码伦伦中文 | 亚洲精品久久久久中文字幕欢迎你 | 日韩一二三在线视频播| 日韩亚洲欧美精品| 一区二区三区四区精品| 亚洲午夜三级在线| 亚洲欧美偷拍卡通变态| 久久成人羞羞网站| 亚洲国产黄色| 亚洲免费黄色| 亚洲深夜福利在线| 午夜精品久久久久久久男人的天堂 | 狠狠色伊人亚洲综合网站色| 亚洲第一精品在线| 日韩视频中文字幕| 亚洲一区bb| 欧美一区二区三区精品| 亚洲国产天堂久久综合网| 夜夜嗨av一区二区三区四季av| 亚洲欧美国产高清| 久久精品二区三区| 欧美大片在线看免费观看| 欧美日韩一区高清| 国产日韩精品一区| 在线不卡视频| 一二三四社区欧美黄| 午夜精品久久久久久久久| 久久国产精彩视频| 99精品99久久久久久宅男| 午夜精品久久久久久久男人的天堂| 久久久久久久久久久成人| 欧美成人一区二区三区在线观看| 欧美日韩美女在线观看| 国产三区精品| 亚洲精品视频在线播放| 亚洲欧美在线另类| 亚洲精品一区久久久久久| 亚洲欧美国产毛片在线| 看欧美日韩国产| 欧美日韩一区二区在线 | 曰韩精品一区二区| 一区二区免费在线观看| 久久精品国产91精品亚洲| 一二美女精品欧洲| 久久精品一区四区| 欧美日韩黄色大片| 国产一区二区黄色| 日韩视频精品在线观看| 久久国产精品一区二区三区| 一个色综合导航| 久久午夜国产精品| 国产精品地址| 在线精品观看| 亚洲欧美不卡| 中日韩高清电影网| 麻豆av福利av久久av| 国产精品亚洲一区| 亚洲精品1区| 欧美一区二区在线看| 亚洲午夜伦理| 欧美a级大片| 国产日韩欧美视频| 99在线视频精品| 亚洲精品久久久久中文字幕欢迎你| 久久国产99| 国产精品户外野外| 亚洲精品国产精品国自产观看| 欧美一区二区在线观看| 亚洲欧美另类国产| 欧美欧美全黄| 在线欧美小视频| 久久aⅴ乱码一区二区三区| 亚洲一区二区在线免费观看视频 | 99re成人精品视频| 亚洲精品国产精品乱码不99按摩| 久久精品论坛| 国产精品免费aⅴ片在线观看| 亚洲精品视频免费观看| 亚洲欧洲精品一区二区三区| 久久在精品线影院精品国产| 国产农村妇女毛片精品久久莱园子| aⅴ色国产欧美| 一本久道久久综合狠狠爱| 欧美成人免费在线观看| 合欧美一区二区三区| 欧美一区二区三区在线免费观看 | 久久久久成人精品| 国产欧美日韩亚洲精品| 亚洲一级二级| 午夜国产不卡在线观看视频| 欧美三级网址| 亚洲美女网站| 中文在线一区| 欧美日韩精品免费观看视频完整| 亚洲国产精品激情在线观看| 亚洲人成人99网站| 欧美成人性网| 亚洲激情中文1区| 日韩亚洲一区在线播放| 欧美成人午夜激情在线| 亚洲激情成人| 99国产精品久久久久久久成人热| 欧美国产一区二区在线观看| 在线免费观看日本一区| 亚洲欧洲三级| 欧美精品午夜| 亚洲伦理自拍| 亚洲香蕉伊综合在人在线视看| 欧美日韩国产小视频在线观看| 日韩午夜电影av| 亚洲午夜激情网站| 国产精品美女久久久久久免费 | 国内视频一区| 亚洲黄色在线视频| 欧美黄色一级视频| 亚洲乱码精品一二三四区日韩在线 | 国产日韩精品在线播放| 欧美在线免费看| 麻豆精品精华液| 亚洲激情在线观看| 亚洲小少妇裸体bbw| 国产欧美日韩另类视频免费观看| 性视频1819p久久| 狼人天天伊人久久| 91久久黄色| 亚洲午夜一级| 国产欧美综合一区二区三区| 欧美影院成人| 欧美第一黄网免费网站| 在线视频精品一| 久久成人免费视频| 精品动漫3d一区二区三区免费| 亚洲精品中文字幕在线观看| 欧美午夜女人视频在线| 欧美亚洲一区二区在线| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲日本中文字幕免费在线不卡| 亚洲一区精彩视频| 国户精品久久久久久久久久久不卡| 亚洲欧洲精品一区二区三区| 欧美偷拍一区二区| 欧美一区二区日韩一区二区| 欧美电影免费观看大全| 亚洲图中文字幕| 久久久久久久久久久久久久一区| 亚洲国产精品热久久| 亚洲欧美国产精品桃花| 一区二区亚洲欧洲国产日韩| 一本一本久久| 国产综合亚洲精品一区二| 99视频+国产日韩欧美| 国产精品一区=区| 91久久综合亚洲鲁鲁五月天| 国产精品国产三级国产普通话99| 久久爱另类一区二区小说| 欧美日韩国产三区| 久久精品动漫| 欧美午夜精品理论片a级按摩| 久久国产直播| 欧美性片在线观看| 久久精品一区二区三区不卡| 欧美深夜影院| 亚洲国产视频a| 国产精品伊人日日| 亚洲精品久久久久久久久久久久久 | 国产在线精品二区| 亚洲影视中文字幕| 在线看成人片| 欧美一区二区三区日韩| 亚洲精品美女在线观看| 久久久亚洲综合| 亚洲一区免费视频| 欧美—级a级欧美特级ar全黄| 午夜精品免费视频| 欧美三日本三级少妇三2023| 亚洲激情小视频| 国产香蕉97碰碰久久人人| 中文欧美在线视频| 亚洲国产日韩美| 久久久亚洲综合| 亚洲欧美日本日韩| 欧美午夜电影在线| 亚洲老司机av| 伊大人香蕉综合8在线视|