多年前曾用想要用pythonnet,來載入群益的api ,但最後失敗了。這篇純粹是出自個人好奇,還是想了解是否能用 pythonnet 來載入 dll,最近找到可以使用的步驟了,在windows下 python 可以呼叫群益api,讓熟悉 C# 的開發者,又想用 python 的人多一種選擇。
目前使用這個方法的好處:
- 在 juypterlab 下,可以顯示各個 function 參數有哪些,減少一直翻手冊的時間。
- callback 部屬比較直覺快速,但也因此比較冗長。
- 熟悉 C# 的人,可以加入 C# 相關的 reference, namespace 當作 python 的模組來使用。
- 其他券商的 dll 檔,也有機會用這套方法來呼叫?
壞處:
- 目前遇到狀況是 callback 出現錯誤時,python沒有任何錯誤通知,除錯比較麻煩。
我的安裝環境:
- windows 10,
- 我使用的是python 3.10.5
- visual studio 2022 (只是為了使用它的 tlbimp.exe)
前置工作
1. 用 tlbimp.exe 將 SKCOM.dll 轉成 Type library
要先將群益的SKCOM.dll 轉成 Type library,我有安裝 visual studio 2022,利用它附帶的 comandline prompt terminal ,下指令 tlbimp.exe 將 SKCOM.dll 轉成 typelib 形式,最終產生 SKCOMLib.dll 的檔案。之後就可以輕鬆用 pythonnet 的 clr 模組取用。





