關於 #include-once 正確用法...我的測試方式怎麼都無法使#include-once 可以作用呢??
本帖最后由 kk_lee69 于 2010-5-31 15:38 编辑我最近在測試 #include-once這個功能.......
我的測試方法如下...........
第一個 檔案 1.AU3 裡面 定義了一個自訂函數A123
第二個 檔案 2.AU3 裡面 也定義了一個自訂函數A123
這兩個A123 內容都是一模一樣的
然後再 測試.AU3裡面....... 依照範例...... #Include <1.au3>兩次
果然出現錯誤訊息......然後再加上#include-once後果然沒出現了.......
但是重點來了.....我加上了#include-once又加上#Include <1.au3> 跟 #Include <2.au3>
但是 程式依舊 出現了錯誤......一樣通知 有重複的函數名..........
這樣就使我有疑問了.............
#include-once 只是單指.............在 測試.AU3裡面如果有重複的#Include 只要 #Include 一次就好
還是 應該是作用於 重複的函數名 只要一次就好(也就是說 不只侷限於單一個AU3檔)
如果是 只侷限於 單一個AU3檔.....這樣不就沒意義了.....會怕重複的函數名.....就是怕 這樣包含來包含去的.....在不同的AU3檔案裡面可能包含相同的函數名........
是不是我的測試方法有問題............可不可以請高手幫幫忙.......釐清一下小弟這個觀念 ....謝謝
P.S 我手上的是 3.3.6.0 版的 英文版 我也不知道 如果你的某个AU3文件只允许被包含一次,那么就在这个文件的题头加入#include-once
例如你用x.au3去包含test.au3,且test.au3只允许被包含一次,那么需要在test.au3的题头加入#include-once 回复 3# skyfree
SKYFREE 你好基本上這個說法我聽的懂.....可是我昨天測試的時候每個文件都加上了這個 還是不可以的......不知道是不是版本問題 還是怎樣的.....可以幫我測試看看你手上的版本有沒有這個問題嗎 回复 3# skyfree
目前測試的結果 好像變成是這樣的。。。。。。
在每個被加入的文件上 加入 #include-once
不管這個文件怎麼被加入的 即使被重複加入 也可以運作正常
但是。。。。不同檔名。。。。兩個都有 #include-once 。。。。
這樣好像就不可以了。。。。一模一樣的 內容 改成不一樣的檔名。。。同時被加入到某個AU3裡面 就會出錯了 把代码放上来大家测试下 本帖最后由 kk_lee69 于 2010-5-31 22:45 编辑
回复 6# autoit3CN
OK 我發個代碼請大家幫忙測試看看結果是不是跟我一樣
1.AU3#include-once
Func ABC()
Return MsgBox(0,"","BBB")
EndFunc2.AU3#include-once
Func ABC()
Return MsgBox(0,"","BBB")
EndFunc測試部分如下時 正常執行...
測試.AU3#include <1.au3>
#include <1.au3>
ABC()但是測試 如果改為 下面的 就無法RUN 了#include <1.au3>
#include <2.au3>
ABC()即使把測試改為 如下 也是不可以RUN 的#include-once
#include <1.au3>
#include <2.au3>
ABC()如果 取消 1.AU3 裡面的#include-once
然後則測試不管有沒有 #include-once 只要你 #include <1.au3> 兩次 就不能RUN
會不會是 本來 #include-once的用途跟意義 本來就是這樣 只是我們沒有了解清楚擴大了它的解釋呢 沉下去了....自己頂一下....希望可以獲的解決
页:
[1]