看板 Trading 關於我們 聯絡資訊
群益提供的報價 API 應該是用 C/C++ 寫的 32-bit DLL 我則是使用 C# 來寫策略程式 API 中有函式需要 callback function 但是他的函式參數只收 long 做為 function pointer 的 type 而 C# 裡只有 delegate 頂多轉成 IntPtr 我試了幾種方法 都沒辦法成功地讓該函式呼叫到 callback function 範例程式碼有 VB 與 VC++ 他們使用 VB: 函式名稱( AddressOf CallbackFunctionName ) VC++: 函式名稱( (long) CallbackFunctionName ) 不曉得板上是否有高手處理過該 DLL (SKQuoteLib.dll) 或是類似的問題 我卡在這地方許久 也找不到解決的方式 根據查的一些資訊 這跟 Managed 與 Unmanaged 之間的 P/Invoke 與反向 P/Invoke 有關 可能跟 CLR 的細部處理有關 C/C++ 的 long 是 32-bit 平台: Vista 64-bit Enterprise Visual Studio 2008, 專案的 target platform 已改為 x86 先行感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.91.117
idleidle:先到XP上試吧 10/06 21:52
idleidle:另外,你有問過群x的工程師嗎? 10/06 21:57
percyy:營業員轉述 說資訊部都說在研究中 10/06 23:09
richshen:不好意思 那個營業員就是我 明天繼續幫你追! 10/06 23:15
richshen:還讓你到版上問 我好慚愧 哈哈 10/06 23:16
percyy:沒關係啦^^" 集思廣益總是好 工程師應該也很忙~ 10/06 23:18
richshen:謝謝啦 我會盡快幫你解決的 10/06 23:23
Rudy:群益給的測試程式,成交回報功能有正常嗎? 10/06 23:48
Rudy:順便問一下,我發現有一個function,回傳很慢,約0.2秒 10/06 23:59
Rudy:實際使用,會嚴重拖慢電腦速度,有人遇到同樣情形嗎? 10/07 00:00
percyy:成交回報? 若是指成交價報價的話 VB測試程式是正常的 10/07 01:32
Rudy:那這樣群益dll是正常的 10/07 12:45
Rudy:接下來就要確定你寫的程式是32bit的,用diassembly確認一下 10/07 12:46
percyy:我解決了,寫 windows form 程式就可以,console 程式不行 10/08 00:58
percyy:可能跟 life time 有關吧~! 10/08 00:59
Rudy:可以幫我試一下,GetTick那個函數,回傳會很慢嗎?(約0.2s) 10/08 10:35
percyy:我現在卡在RequestTicks耶 TCHAR* 搞不定 老是回覆212 10/08 21:36
percyy:所以還沒辦法用GetTick吧 Orz 10/08 21:37
Rudy:我傳 "TX00" 10/08 22:44
percyy:是String直接不用MarshalAs嗎? 我也丟過 "TX00"、"0050" 等 10/08 22:53
percyy:都是212 害我懷疑是Stocks.dat的問題? 有時看它被覆寫成0KB 10/08 22:54
percyy:嗯 看來應該跟Stocks.dat無關 它好像程式關閉後才會被更新 10/08 23:30
percyy:我的程式不會正常關閉 最後會有Memory不能為read的錯誤訊息 10/08 23:31
iamkjs:string改成用stringbuilder來接試試看~ 10/12 00:04
iamkjs:雖然我沒接過群X的API,但我有接過其他C/C++ DLL,也是用C# 10/12 00:05
iamkjs:該DLL也是交易用,但不是證券or期權商品,開發過程蒐集很多 10/12 00:06
iamkjs:資料,如還有問題,我可以把這些資料share給你參考喔~ 10/12 00:06
idleidle:不是證期權?那是外匯嗎?那個平台的呢 ^^ 10/12 01:28
percyy:StringBuilder sb = new StringBuilder("TX00"); 也不行Orz 10/13 21:05