国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

LabVIEW 8.6報表工具包生成和調(diào)用DLL問題分析及對策

2012-04-29 00:44胡勝文萬加林
科技資訊 2012年19期
關(guān)鍵詞:工具包自帶文件夾

胡勝文 萬加林

摘 要:針對LabVIEW8.6調(diào)用報表工具包生成的DLL過程中出現(xiàn)“NI_Word.lvclass”路徑無法找到的問題,做了詳細描述和分析,并提供了相應的解決方案。

關(guān)鍵詞:LabVIEW 8.6Word動態(tài)鏈接庫報表工具包面向?qū)ο?/p>

中圖分類號:TP3 文獻標識碼:A 文章編號:1672-3791(2012)07(a)-0007-02

LabVIEW是美國國家儀器(NI)公司推出的專門用于虛擬儀器開發(fā)的圖形化軟件編程平臺,吸引了大批開發(fā)者追隨,NI也根據(jù)市場需求每年推出一個新版本。但新技術(shù)的引用不可避免的也帶來了新的問題和BUG,尤其是升級后,很多硬件驅(qū)動不得不更新。LabVIEW 8.6版本是NI推出的所有版本中,大部分用戶公認比較成熟穩(wěn)定的版本。

NI 報表工具包從1.1.3開始采用面向?qū)ο蠹夹g(shù),重新設計,1.1.3和1.1.4版本是專為LabVIEW 8.6而定制使用的,而以前的版本如1.1.1、1.1.2(面向過程技術(shù))在LabVIEW 8.6下與自帶的Report函數(shù)不兼容。

1問題描述

應用開發(fā)環(huán)境以及報表工具包版本:LabVIEW 8.6 + Report Generation Toolkit 1.1.3。

在LabVIEW 8.6新建工程項目文件,并按照圖1和圖2建立相應的VI和文件。

當運行main.vi或Main.exe時,出現(xiàn)下面(圖3)報錯框。

而單獨運行1.vi或1.exe時,卻能正常運行。

2問題分析

根據(jù)問題報錯框描述,問題可能出現(xiàn)在“Get LV Class Default Value.vi”的上一層文件“Word class path.vi”傳遞出的NI_Word.lvclass路徑,圖4為報表工具包自帶的“Word class path.vi”程序框。

利用LabVIEW自帶診斷和調(diào)試工具,可獲得“Word class path”顯示的文件路徑,如表1所示。

(1)當運行main.vi時,由于是“Develo- pment system”環(huán)境下,根據(jù)路徑的分離規(guī)則,“NI_Word.lvclass”文件路徑應在當前DLL文件的下層目錄,并且布爾量選擇為False,即“..1.dllword NI_Word.lvclass”。

(2)當運行main.exe時,由于是在“Run Time system”環(huán)境下,布爾量的選擇為True,系統(tǒng)默認“NI_Word.lvclass”是在“.. 1.dllNI_Word.lvclass”。

(3)當運行1.vi時,由于是在“Develop- ment system”環(huán)境下,系統(tǒng)默認“NI_Word.lvclass”是在安裝路徑下,而且在該路徑下可以找到此文件。

(4)當運行1.exe時,由于是在“Run Time system”環(huán)境下,系統(tǒng)默認“NI_Word.lvclass”是在當前EXE文件的下層目錄,即“.. 1.exeNI_Word.lvclass”。

現(xiàn)根據(jù)以前NI在對exe生成過程的描述,是將所有vi都轉(zhuǎn)移到exe目錄[1],例如a.vi路徑為“c:a.vi”,當生成exe時,路徑變?yōu)椤癱:a.exea.vi”,這點也可以從運行1.exe,“NI_Word.lvclass”的路徑可以看出。

由于DLL生成過程類似于exe,以及上述運行結(jié)果分析,“NI_Word.lvclass”應該是在1.dll目錄下,而在實際應用中,在“..1.dll”或“..1.dllword”卻找不到該路徑。

如果在DLL的生成過程中,添加“NI_Word.lvclass”到“始終包括”中,需要注意的是,需在項目瀏覽器(工程項目)中手動添加“NI_Word.lvclass”文件“…Nationalinstruments

LabVIEW8.6Vi.libutilityNIReport.llbWord”,重新生成DLL,運行“main.vi”或“main.exe”失敗。

如果修改“Word class path.vi”,指定一個固定路徑給“NI_Word.lvclass”,如圖5所示,卻能夠正常運行。

可見在生成DLL的過程中,并沒有將“NI_Word.lvclass”包含到DLL的目錄下。

3解決方案

3.1 版本降級使用

當使用LabVIEW 8.5和Report Generation Toolkit 1.1.2以下版本時,不存在此類問題(升級為LabVIEW 2010+Report Generation Toolkit 2010也存在此類問題)。

3.2 指定“NI_Word.lvclass”為一固定路徑

(1)從安裝路徑復制“NI_Word.lvclass”到DLL生成路徑。

(2)修改“New Report.vi”中的“Word class path.vi”(圖7)。

3.3 改造函數(shù)庫和使用方法

(1)修改“New Report.vi”中的“Word class path.vi”,使得生成DLL時文件路徑不同,但同時不影響編輯狀態(tài)(Development system)和生成EXE狀態(tài)(Run Time system)下的文件路徑,如圖7所示。

(2)在項目瀏覽器(工程項目)中添加“NIReport.llb”(“…LabVIEW8.6Vi.libutilityNIReport.llb”)。

(3)在“源文件”目標中,在“始終包括”添加NI_Word.lvclass、NI_Html.lvclass、NI_Report.lvclass、NI_Standard Report.lvclass,需要注意的是,如果1.vi作為某一個VI的子VI時,并且該VI生成DLL時,還需添加“Word class path.vi”。

(4)在“目標”中,添加對應的文件夾,命名要相同,如“NI_Word”,“右側(cè)類別”勾選llb,在目標路徑中修改為“..dlldata NI_Word.dll”;其它類似。

(5)在“源文件設置”中,把四個lvclass文件設置為對應的文件夾目標,如圖8所示。

需要進一步說明的是,如果生成的文件中有“NI_ReportGenerationToolkit”類似的文件夾,則在“附加排除項”中,勾選“斷開連接自定義類型”。

4結(jié)語

(1)當用到有關(guān)Excel的VI時,也會存在此類問題,只需按照對Word的處理方法即可(“Excel class path.vi”和“NI_excel.lvclass”)。

(2)在生成exe時,如果想解決生成的exe目錄內(nèi)一大堆的VI和文件夾時,可以采用類似的第三種方法。

(3)LabVIEW 2010+ Report Generation Toolkit 2010解決了生成的exe目錄內(nèi)一大堆的VI和文件夾問題(但對DLL找不到路徑這個問題還未解決)。對DLL問題可以采取類似于上述的三種解決方案。

參考文獻

[1] 阮奇幀.我和LabVIEW:一個NI工程師的十年編程經(jīng)驗[M].北京:北京航空航天大學出版社,2009.

猜你喜歡
工具包自帶文件夾
Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
磁力文件夾
周迅:天才,自帶撥亂反正的能量
谷歌云與Digital Asset合作推出區(qū)塊鏈工具包
中國寶玉石(2018年6期)2018-03-05
調(diào)動右鍵 解決文件夾管理三大難題
好的愛情自帶成長屬性
運用MATLAB軟件求解高中數(shù)學中的線性和非線性規(guī)劃問題
掛在墻上的文件夾
TC一鍵直達常用文件夾