VB6 好站
最近又要用 VB6 開發系統了,在 VB6(非 VB.Net)下,自行撰寫物件若有需要產生事件(Event)又物件是在一個 Collection 內或是 Array,則要設定一個事件處理函式給這些物件用,還真不知道如何作,因為在VB6中,使用 WithEvents 宣告出來的才能寫事件處理函式,但多個同型物件要共用這個處理函式時,應該要如何作呢?
上google找到半天,總算是找到了一個好站 Karl E. Peterson's Classic VB Articles,這個站有超多進階應用,附原始碼,方便測試使用。像是 ObjArrays 就提供方法,使陣列物件共用一個事件處理函式。 另外,Who Says VB Can't Use Pointers? 這篇也很值得熟 C/C++ 的看一下 VB 如何進行指標操作。
寫了三天的測試,想要由 DLL 觸發一個事件到叫用 DLL 的程式中,結果還是無法成功...
今天再找找,使用 Message Send/Post 的方式,應該就可行了吧...
以下是 VB 處理 Windows 訊息的資料:
1. Handling Windows Messages In Visual Basic 5/6 by Richard Matthias
2. Windows Messages
又找到更讚的資料,AdamBear 的 VB 真想不到系列,很值得看,可惜 AdamBear 都沒有新文章了,blog 上也沒附 VB project code 檔... 可能要找個時間,把他的 blog 備份下來,免得關閉找不到原始來源。
再來 Visual Basic Secrets 也有不錯的東西...但是...
竟然在試了以上那麼多種方法,還是無法由 DLL 觸發事件到叫用的 EXE 中,真的是有點被 VB 打敗了
以下是 VB5/VB6 寫多執行緒的一些參考資料:
1. Ingenious Ways to Implement Multiple Threads in Visual Basic 5.0, Part I
2. Multiple Threads in Visual Basic 5.0, Part II: Writing a Win32 Debugger
3. MultiThreading in VB6.0
找了許多 VB5/VB6 多執行緒的資料,竟然找不到 ThreadTimer 可用