想讀取Current Directory 的 Prefile.ini 檔內容,在 .vi檔時OK
但轉成 .exe檔時卻無法讀取,
要如何設定在 .exe檔才能讀取呢
想讀取Current Directory 的 Prefile.ini 檔內容,在 .vi檔時OK
但轉成 .exe檔時卻無法讀取,
要如何設定在 .exe檔才能讀取呢
你可以試著將 Current VI's Path.vi 接上一個 indicator 來觀查,
在建成執行檔 之前 及 之後 會有不一樣的結果。
試試看,並將結果告訴大家。
其實這算是labview的小bug(個人是這樣認為啦),在build成執行檔時,它會將所有sub VI包在執行檔下,所以你是c:\A\B.VI,包成執行檔可能就成為C:\A?.EXE\B.VI,這樣我們所得到的VI path就會出問題了,這是個小小的使用心得,有空再討論吧。
[QUOTE=Marco]其實這算是labview的小bug(個人是這樣認為啦),在build成執行檔時,它會將所有sub VI包在執行檔下,所以你是c:\A\B.VI,包成執行檔可能就成為C:\A\?.EXE\B.VI,這樣我們所得到的VI path就會出問題了,這是個小小的使用心得,有空再討論吧。[/QUOTE]
其實我們可以來想一想:
現在,在路徑 『 C:\Test\ 』底下有
「A_Main.vi」、「B_Sub.vi」、「C_Sub.vi」三個 VIs
第一個為主程式,其餘為主程式所使用到的副程式。
其路徑為:
=> C:\Test\A_Main.vi
C:\Test\B_Sub.vi
C:\Test\C_Sub.vi現在我們將「A_Main.vi」建成一個執行檔叫做「D_Exec.exe」
並放在『 D:\Test\ 』而在「A_Main.vi」的程式碼需要得到「B_Sub.vi」的路徑
(比方說在動態呼叫的情況下)
如果依照我們一般的認知會是
=> D:\Test\B_Sub.vi然而『D:\Test\』是不存在「B_Sub.vi」的,
在這裡只有一個執行檔「D_Exec.exe」在「D_Exec.exe」裡頭才有
「A_Main.vi」、「B_Sub.vi」、「C_Sub.vi」三個 VIs 存在而正確的路徑應該是
=> D:\Test\D_Exec.exe\B_Sub.vi所以 Marco 所提到的『C:\A\?.EXE\B.VI 』,
我想應該是可以理解的。(雖然我自己第一次在用的時候,也發生同樣的情況 .....)
Airbolt 好厲害呢
我才短短幾句話,你可以寫的這樣詳細,看來我要好好學習學習了。
我還真是對不起發問的人呢。
感謝 Airbolt 與 Marco 二位前輩的幫忙,解決了小弟的困難
結果和你們所說的一樣

Marco 您客氣了,
我只是將自己知道的跟大家分享,
有機會你也可以跟大家分享在程式上的心得或是一些想法。
論壇本來就是集合大家的力量來讓大家有個學習、討論的空間
並且互相激發彼此創意的一個地方。
另外,謝謝 Jertsong 幫忙做的範例,
這樣大家可以更了解 相對路徑在 執行檔 與 VI 上的差異。