|
本帖最後由 alexliou 於 17-5-6 16:31 編輯
OnConnection與OnNotifyTicks都沒反應原因如下 :
1. 宣告 COM Event時 沒加 New, 更改下列兩行Code
Public WithEvents SKCenterEvents As New SKCenterLib
Public WithEvents SKQuoteEvents As New SKQuoteLib
2. Event Handler 和 Event 沒有hook在一起, 更改 Sub宣告
Sub SKQuoteEvents_OnConnection(ByVal nKind As Long, ByVal nCode As Long) Handles SKQuoteEvents.OnConnection
Sub SKQuoteEvents_OnNotifyTicks(ByVal MarketNo As Integer, ByVal Index As Integer, ByVal Ptr As Long, ByVal Timehms As Long, ByVal Timemillismicros As Long, ByVal Bid As Long, ByVal Ask As Long, ByVal nClose As Long, ByVal Qty As Long, ByVal Simulate As Long) Handles SKQuoteEvents.OnNotifyTicks
3. Sub SKQuoteEvents_OnConnection()中, 宣告了一個與Sub 參數同名的Local variable : nCode
把Dim nCode As Long 這行刪掉
此外, 由於新版的VS已不支援 Set 指令, 我建議把 所有的Set拿掉, 直接宣告
Dim SKCenter As SKCenterLib = New SKCenterLib()
Dim SKQuote As SKQuoteLib = New SKQuoteLib()
VB中要處理來自COM Component Event 的程序(就像目前這種狀況) 可參考
https://msdn.microsoft.com/en-us/library/ms973905.aspx
Handling Events from COM Sources 那段
GetTick是直接掛掉
原因應該是參數不正確(參數不正確有的狀況會出現Exception, 有的狀況會出現錯誤訊息)
我嘗試用 SKQuote.SKQuoteLib_GetTick(2, 0, 0, Tick)來 Call 是OK的
問題是 : 要使用到這個函數的情況是很少見的
甚麼時候 User已經知道某個Tick的Ptr 還需這個Tick 的資料呢?
如果他不知道某個Tick是否存在, 那為何要access 這個Ticks呢?
如果連StockIndex都不存在 , 就會發生程式掛掉的狀況
|
評分
-
查看全部評分
|