2021年4月6日 星期二

[C#] 匯入dll參考須注意事項 , 使用廠商給的dll請先確認版本

最近開發一類別包裝光學探頭模組,

將同仁的使用需求直接整理成完整的API,

同仁就可以省去摸索光學探頭的操作細節。

程式完成之後開始進行測試,

發現透過探頭去蒐集data都會有data延遲的情形,

情境如下:

光學探頭控制器接收一次trigger便會開始蒐集3點data,

並等待下一次trigger,

這次預計收3次trigger。

預期結果如下:

[ a b c d ]   第一次triggerg收進來的data

[ e f g h ]    第二次triggerg收進來的data

[ i j k l ]     第三次triggerg收進來的data

實際結果如下:

[ a b c d ]   第一次triggerg收進來的data

[ a b c d ]   第二次triggerg收進來的data

[ e f g h ]    第三次triggerg收進來的data

[ i j k l ]     第四次triggerg收進來的data(預期之外的Trigger)

可以發現第一筆資料重複出現了一次,

導致需要多一次Trigger訊號才能夠得到所有的資料,

檢查了很多次程式碼流程,找不出問題,

後來想詢問原廠是否遇到相同情況,

但後來發現原來他們的dll已經更新版本,

由於我們使用的控制器是不同時間點購買進來的,

因此配合的dll版本也不同,

改成相同的dll版本便會出現預期結果了,

廠商提供的軟體版本很容易會因為相信廠商而沒檢查到版本不同,

這是一次印象深刻的經驗。


[小地方也要注意]

剛開始找到上面的問題時,

是直接將最新版本的dll檔案覆蓋到新檔案上(資料夾內直接把檔案覆蓋),

但問題還是重複出現,

原來是我沒有在專案中透過加入的動作把新的dll檔案給匯入到專案中,

這是容易疏忽的地方,要特別小心。

2 則留言:

  1. 所以流程上 匯入新的dll 下一步還要加入進去 才是完整的被更新囉?

    回覆刪除
    回覆
    1. 嘿阿,除了DLL檔案要更新,儘管檔名和路徑都相同,也不要忘記透過IDE重新匯入這個DLL檔案。

      刪除

社會新鮮人如何投資?

我的觀點是,在 沒有很多 本錢 的情況下, 別寄望每個月幾千元放到股票或者最近很夯的高股息ETF就能讓你致富, 先投資自己,讓自己的本業收入提高吧。