Re: [API] 整人的mouse_event

看板Visual_Basic作者 (躂躂..)時間17年前 (2008/07/23 01:25), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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

07/23 02:19, , 1F
感謝,我解了解
07/23 02:19, 1F

07/24 02:11, , 2F
說明得真好
07/24 02:11, 2F
文章代碼(AID): #18XXViUz (Visual_Basic)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #18XXViUz (Visual_Basic)