本帖最后由 edisonx 于 2012-11-11 19:39 编辑
回复 10# netegg
ok 我要說的是「不便」,不是「不能」。
假設一份 struct 裡面有 10 多個成員,分別是 int a, int b, ..., int i,
au 怎做初始化?也只能一個一個 assigned 了吧?
local $$tagPoint = "int a;int b;int c;....;int i;"
$tPoint = DllStructCreate($tagPoint)
dllstructsetdata($tPoint, 1,1)
dllstructsetdata($tPoint, 2,2)
dllstructsetdata($tPoint, 3,3)
...
dllstructsetdata($tPoint, 10,10)
c 蠻容易完成的typedef struct tagPoint {
int a, b, c, d, e, f, g, h, i;
}Point;
Point tPoint = {1,2,3,4,5,6,7,8,9,10};
再來是,假設多了一個 tPoint2,其內容和 tPoint 一樣的話,怎麼做?
好一點的是用 loop 完成
$tPoint2 = DllStructCreate($tagPoint)
For $i = 1 To 10
dllstructsetdata($tPoint2, dllstructsetdata($tPoint1, $i), $i)
Next
c / c++ 的話Point tPoint2 = tPoint;
// Point tPoint2;
// tPoint2 = tPoint;
如一開始所說,這部份應已屬個人偏見 ,
( 唯樓者也和小弟一樣,從 C/C++ 轉摸 AU),
AU 不是不能做到,而是「小弟覺得」相較之下,沒有 C/C++ 來得方便。
----------
>> 面向对象本来就不是autoit干的活
所以我說,因為沒有面向對象,所以可能「較不會是大型專案之首選」,
這不就是樓主相知道「AutoIt 有什麼缺點」的部份嗎?
最後感謝您提到 BitXOR,當時看 help 時漏看了,這點是我學不專精,謝謝您。 |