原创 windows10下rust使用opencv4踩坑

windows10下rust使用opencv4庫 opencv = "0.41.0" 首先這個庫是對opencv的綁定,而opencv2.4版以後就不對C API進行維護了,雖然也是訪問(但功能是都是以前的C API,新的方法功能都在C

原创 windows10下編譯llvm-config

首先LLVM的windows版是不包含llvm-config.exe的,需要自己下源碼編譯。 參考這篇文章:https://stackoverflow.com/questions/17096804/where-is-llvm-config

原创 rust-opencv 從內存中讀取一張圖片

//從內存中加載圖片 pub fn get_img_info_mem(img_data: Vec<u8>) -> Result<core::Mat,String> { let mut data= Vector::from_it

原创 windows下應用程序加載DLL動態鏈接庫路徑

windows下應用程序加載動態鏈接庫路徑依次分別是: 舉例D盤soft文件夾下存在了一個test.exe的執行文件,即d:\soft\test.exe,依賴test.dll動態鏈接庫. ■程序的執行目錄 test.exe執行文件存放在D

原创 opencv官方說2.4版以後都不在兼容C API

OpenCV(開源計算機視覺庫:http://opencv.org)是BSD許可的開源庫,其中包含數百種計算機視覺算法。該文檔描述了所謂的OpenCV 2.x API,與基於C的OpenCV 1.x API相比,它實際上是C ++ API

原创 在windows下綁定opencv庫使用

rust的FFI機制可以很輕鬆與C庫進行調用,但也複雜,如果你自己人工翻譯代碼的話,還好有bindgen工具。 本來覺得像opencv這樣的庫,rust應該有人進行綁定使用,確實有,但很複雜,原來是多種的,最坑的就是牆, opencv-r

原创 rust使用websocket,使用開源庫ws

rust的開源庫地址https://github.com/housleyjk/ws-rs 其實當webscket客戶端使用https連接時,依賴的是rust的openssl庫,而rust的openssl(https://docs.rs/o

原创 rust mio的例子

mio是rust的一個低級非阻塞api的網絡庫 文檔地址:https://docs.rs/mio/0.6.20/mio/ 官方的介紹:A fast, low-level IO library for Rust focusing on no

原创 3.教程:使用async-std編寫聊天服務(3.7 完全關閉)

3.7 完全關閉 當前實現的一個問題是它不能處理正常關閉。 如果我們出於某種原因而中斷了accept循環,那麼所有的正運行任務都將被丟棄。更正確的關機順序是: 不再接受新的客戶 把未處理完的消息正常處理完 (這聊天服務中主要是指把未發送給

原创 3.教程:使用async-std編寫聊天服務(3.8 處理客戶端斷線連接)

3.8 處理客戶端斷線連接        目前,我們只在broker中上添加新的客戶端連接。        這顯然是錯誤的:如果一個對等方關閉了與聊天室的連接,我們不應該再嘗試向它發送任何消息。 處理斷開連接的一個微妙之處在於,我們可以

原创 windows下最具生產力的IDE——Idea社區版+rust插件

首先Idea社區版是免費與收費版功能肯定是有區別的,但使用rust插件來開發rust程序是完全沒有問題的。 最早是用vscode+rust插件來學習和開發rust程序的,也很好配置而且輕量級,但從使用經驗來說還是推薦使用idea社區版(可

原创 rust 過程宏例子(rust編程之道的過程宏例子)

 Cargo.toml [package] name = "ioc_macro" version = "0.1.0" edition = "2018" [dependencies] syn = "1.0" quote = "1.0"

原创 rust目前實現IOC意義不大的原因

1 首先是可變性。 struct A{ b:Option<Arc<B>> } struct B{} struct C{ b:Option<Arc<B>> } struct IOC{ map:Hashmap, } 如果A和B有一個需要調用B

原创 rust Arc、Rc和Cell在web開發中使用到的場景

在web開發中常見的一場景:一個Person 實體有一個Vec<Address>的屬性, #[derive(Clone, Debug)] struct Person { addrs: Vec<Address> } #[deri

原创 rust serde序列化Arc包裹的屬性報錯

  serde 加個 feature, rc serde = {version="1.0",features = ["derive","rc"]}