kk_lee69 发表于 2010-5-31 09:20:05

關於 #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 版的 英文版

zoulin 发表于 2010-5-31 10:10:18

我也不知道

skyfree 发表于 2010-5-31 10:42:59

如果你的某个AU3文件只允许被包含一次,那么就在这个文件的题头加入#include-once

例如你用x.au3去包含test.au3,且test.au3只允许被包含一次,那么需要在test.au3的题头加入#include-once

kk_lee69 发表于 2010-5-31 15:37:32

回复 3# skyfree


    SKYFREE 你好基本上這個說法我聽的懂.....可是我昨天測試的時候每個文件都加上了這個 還是不可以的......不知道是不是版本問題 還是怎樣的.....可以幫我測試看看你手上的版本有沒有這個問題嗎

kk_lee69 发表于 2010-5-31 15:48:41

回复 3# skyfree


    目前測試的結果 好像變成是這樣的。。。。。。

在每個被加入的文件上 加入 #include-once

不管這個文件怎麼被加入的 即使被重複加入  也可以運作正常

但是。。。。不同檔名。。。。兩個都有 #include-once 。。。。

這樣好像就不可以了。。。。一模一樣的 內容  改成不一樣的檔名。。。同時被加入到某個AU3裡面  就會出錯了

autoit3CN 发表于 2010-5-31 19:04:59

把代码放上来大家测试下

kk_lee69 发表于 2010-5-31 22:36:49

本帖最后由 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的用途跟意義 本來就是這樣 只是我們沒有了解清楚擴大了它的解釋呢

kk_lee69 发表于 2010-6-10 12:24:03

沉下去了....自己頂一下....希望可以獲的解決
页: [1]
查看完整版本: 關於 #include-once 正確用法...我的測試方式怎麼都無法使#include-once 可以作用呢??