在看房子 差點忘記更新day10
因為當兵的關係 要找有租短期的
很不好找
今天處理掉了 最多傳64筆資料的bug
原因是裝置在full speed下預設的封包buffer就只有64
雖然可以手動調大 但是極限就只能到256
要治本的話 需要再準備一個buffer當資料量超過64筆的時候
就收進那裏 多收幾次 收完資料才拿去運算
USB大致上都講解得差不多了
稍微談談 所謂的 DLL
/*---------------分隔線---------------*/
DLL (Dynamic-link library) 動態連結函式庫
DLL是微軟公司在微軟視窗作業系統中實現共用函式函式庫概念的一種實作方式。
所謂動態連結,就是把一些經常會共用的程式碼製作成DLL檔,當執行檔呼叫到DLL檔內的函式時,Windows作業系統才會把DLL檔載入記憶體內,DLL檔本身的結構就是可執行檔,當程式有需求時函式才進行連結。透過動態連結方式,記憶體浪費的情形將可大幅降低。靜態連結函式庫則是直接連結到執行檔。
這種方式可以讓程式容易開發與擴充,例如要對原有功能予以強化或加入一些新功能時,只要對舊有的DLL檔予以更新,或加上新的DLL檔即可,不必重撰寫整套程式碼,節省許多時間與複雜度,而且可以不公開程式碼的情況分享給別人使用 。
既然有動態連結就有靜態連結
靜態連結(Static Linking)會在開發階段將程式所需要的函數、資源等全部加入程式的執行檔,執行檔的體積因此變大,所以靜態連結的執行檔往往需要較大的記憶體空間,當所用的函式庫越多時,執行檔也就越龐大。
但由於靜態連結是把整個Library包進去執行檔,因此可以保證到不同機器環境下執行時,也不會因為少了這個函式庫導致無法執行檔案,但其缺點是檔案會比較大,動態連結是在程式開始執行時才載入的,所以執行檔較小,而且更新程式庫無需重新編譯其他程式,兩者各有優缺點,以實際需求來選擇編譯的方式,當檔案共用多個函式庫,可採用動態連結,反之就建議採用靜態連結
/*---------------分隔線---------------*/
跟昨天不一樣 雖然內容都只有文字
但DLL對想要靠寫程式吃飯的人是很重要也很基礎的一項知識
可以節省效能 簡化維護、更新 甚至還能讓別人使用卻不讓人看到程式碼
但是學校不會教這些 要自己去學
徵求一下明天要更新的內容