看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《saininniang (莎里奈)》之銘言: : 不是大多數都 FUNCTION (XX,XX,XX)嗎 : 怎麼會有 FUNCTION XX,XX,XX 的寫法? 在 VB.NET 之前言的 BASIC 語言, 應該是 Sub 不加 ( ), function 才要加 ( ) 雖然說, 呼叫 "只有一個參數" 的 Sub 也可以加 ( ), 但意義完成不同.. 例如 print a 與 print (a) 後者其實會去重新演算(evaluate) 括號中的 expression, 產生一個暫時變數後才再過去, 在想傳 BeRef 修改 a 值是, 會得到錯誤的結果.. 因為你的 mouse_event 是 sub, 所以不加 () (x,x,x,x) 本生沒辦法演算, 所以編譯時就會產生語法錯誤.. : 2. : 是用1,2,4,8,16,32,64.... : 為什麼阿? : 連mdsn上也沒寫可以這樣用 : 為什麼API這麼難用? 恐怕應該說, 其實是 VB 難用, 不是 API 難用 :X 因為這個 API 打從一開始就是給 C/C++ 用的, 你有注意到文末的 Header Declared in Winuser.h, include Windows.h 嗎? 對一個 C/C++ 的user, 他想要呼叫 mouse_event , 只需要 #include <Windows.h> 就可以呼叫 mouse_event 了, 不需要 ``declare'' 你在 1. 講的東西.. 而且也可以直接套用 MOUSEEVENTF_ABSOLUTE 等等參數.. 因為這些東西都已經寫在 windows.h(或說winuser.h) 裡了, 而為什麼可以用 1,2,4,8,16,32 傳? 那是因為 MOUSEEVENTF_ABSOLUTE 這些東西說穿了就只是些整數值啊.. 寫成這個樣子,在撰寫、維護、移植 才會比較方便.. 光看一個 16 誰知道是什麼意思.. 要的話, 你也可以把這些 flags 自己重訂成常數再用, 也是一樣的意思.. : 而且還搞怪,連API使用方法都不一致 這應該是你對 API 不熟所造成的錯覺吧 @@" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.113.211
saininniang:感謝,我解了解 07/23 02:19
yauhh:說明得真好 07/24 02:11