顯示具有 Tech-programming-VS 標籤的文章。 顯示所有文章
顯示具有 Tech-programming-VS 標籤的文章。 顯示所有文章

2020年5月12日 星期二

Visualstudio 用專案屬性加入dll目錄

在VS debug的時候加入用到的dll檔這件事情我到目前看到幾種做法
1. 直接暴力把dll檔案copy一份到debug工作目錄中
2. 把用到的dll檔目錄加到系統PATH變數中
3. 今天新發現的,在project的properties>Debugging>Environment中加入
ex: PATH=$(openCvPath)x86\vc15\bin;%PATH%
這裡可以使用MACRO變數($(openCvPath))跟系統變數(%PATH%)

用1. 的好處是,整格專案copy出去不需要修改任何東西比較能正常執行,個專案間的dll也不相互影響,壞處是dll copy一份不是很乾淨也占空間
2. 的好處是所有的專案只須設定一次dll,缺點是各專案如果想使用不同版本dll切換困難,換電腦的話path也需要重設
3. 看起來比較乾淨,也不會因為debug影響整個系統,但各專案需要獨立去設置,另一個好處是,知道的然在部屬程式的時候能知道要去哪邊找需要的dll來用

Visualstudio 用專案屬性加入dll目錄

2019年12月11日 星期三

Visual studio $(MSBuildStartupDirectory)變數

最近工作上接到的專案有用到這個Macro
他解析出來的值如果專案是從.sln檔所在位置開啟,值是sln所在資料夾
但若從VS 起始頁的recent開啟(相信大家都是這樣開的吧XD),值會是VS所在資料夾orz
建議如果是要指定sln所在位置,用$(SolutionDir)比較恰當

Visual studio $(MSBuildStartupDirectory)變數

2019年8月14日 星期三

Git reset 回復尚未push的commit

昨天因為sub module還沒commit就先commit整的專案的關係,導致sub module的一個檔案卡住沒有commit出去
但因為潔癖作祟不想因為這樣一個原因新增一個commit(前天也發生過,但那次潔癖沒發作就直接新增一個commit)直覺上我還沒push應該還有救
中間發生了不小心用了revert這個功能又平白多出一個commit的窘況(revert 是在push 出去之後的挽救方法)
今天研究之後發現這種commit錯但還沒push的情況應該是要用reset來救

Git reset 回復尚未push的commit

2019年1月16日 星期三

vscode intellisense 消耗太多記憶體

intellisense消耗>10 GB的RAM造成系統及VS code沒有回憶
以下面的方式改用Jedi
在setting(ctrl+p, ">setting")中搜尋"python.jediEnabled": true或勾選並reload,

vscode intellisense 消耗太多記憶體

2018年2月21日 星期三

VS 2015 remote debug

當程式是要在其他裝置上run,但又不像在那個裝置上裝VS,但有想要DEBUG可以用這招

VS 2015 remote debug

2017年1月26日 星期四

取像與處裡與lock

在處理影像同時如果剛好對影像進行更新,有可能會出現錯誤。因為在處裡的時候影像被更新,或是將更新到一半的影像送去處理。
這時候可以用lock

取像與處裡與lock

2016年12月23日 星期五

LoaderLock error

VS2015關閉LoaderLock訊息回報被改到
Debug->Windows->Exception Settings
Managed Debugging Assistants>LoaderLock這個地方
以前版本的VS是在
Debug -> Exceptions
Managed Debugging Assistants>LoaderLock
對於所有遇到的不明loader lock錯誤都可以從這邊關掉。不只在VS裡面,compile出來的執行檔也不會回報這類錯誤。

LoaderLock error

2016年12月21日 星期三

vs debug 時期路徑

因為debug的時候exe會因為x86/x64....的原因build到不同的位子去
如果有使用相對路徑去讀取檔案就可能會需要很多份
要找Resource們也會很困難
一個簡單的方法是去設定debug的路徑

vs debug 時期路徑

2016年11月29日 星期二

[WinForm]取消focus狀態

這篇要做的事情跟前一篇的取消textbox輸入狀態不同
textbox只要將form的active control改成null或其他control就可以取消輸入狀態
但如果今天是想取消鍵盤事件對子Control的校果(例如只在特定狀態下讓快捷鍵能對子control作用)就沒這麼簡單
主要的問題是出在取消active control只是讓使用者不會繼續輸入,但是鍵盤事件一樣會被control接收到

[WinForm]取消focus狀態

2016年11月28日 星期一

鎖定combobox

combo box 如果不想讓使用者任意輸入值(其實一般狀況下combo box的操作方式都是這樣),可以把combobox的DropDownStyle改成DropDownList

鎖定combobox

clr20r3 錯誤

最近寫一隻avt vimba取像程式,在我自己電腦run沒問題,但在traget上一直出現clr20r3的錯誤訊息
但在有安裝VS的電腦上又沒事orz
google上大部分的人都說這是.net framework沒有安裝正確版本的問題,少部分有更奇門遁甲的招式。但其實,.net framewor的版本問題會有其他錯誤訊息產生。
後來經過一番奮戰發現,這就是在form load之前的error,一旦form建立了,error的形式就會改變。所以這個clr20r3就是一般的bug,只是在form尚未建立時發生,請遵循一般debug步驟排除之。

也就是說如果你下載了一個程式,他在妳電腦上出現這樣的error,這隻程式有問題,如果你沒有code不用想修復他。
如果你是coder,你的程式有問題,請想辦法Debug

clr20r3 錯誤

2016年11月25日 星期五

[VS] 程式快捷鍵

寫了一個取像並以OK/NG存檔的程式
因為不想用滑鼠慢慢點,在這程式加入了快捷鍵支援

[VS] 程式快捷鍵

[VS]取消textbox的輸入狀態

在form中加入了快捷鍵的功能後在textBox中輸入文字竟然也會觸發快鍵
難怪快捷鍵都設定成ctrl+blablabla
但是我就是為了方便程式運作不用用滑鼠按按鈕,所以快捷鍵只想按鍵盤上的一個鍵,因此在textbox輸入時要阻止form的快捷鍵運作。

[VS]取消textbox的輸入狀態

[VS]設定透明Label

將Label背景設定為透明
label.Parent = pictureBox_lowerLayerObject;
label.BackColor = Color.Transparent;

[VS]設定透明Label

2016年8月19日 星期五

VS 專案基本設定

2016年8月4日 星期四

在c++/cli專案中使用c# dll

因為廠商提供的專案是c++,但是轉檔的utility是c#所以研究了一下
google會看到很多用COM物件或是其他看起來有點麻煩的方法
研究後發現是很困難,but還是有些不踏實的地方
後來覺得小東西也是可以整個重寫就好啦XD

在c++/cli專案中使用c# dll

2016年7月11日 星期一

vs2015 intellisense修復

2016年7月4日 星期一

windows.h in VC2005

VC2005要compile需要另外安裝平台開發套件才有windows.h可以用。如果在編譯VC2005專案時出現找不到windows.h可以參考本篇的解決方式。

windows.h in VC2005

2016年6月28日 星期二

Visual Studio省時間小撇步

看了這片6 Visual Studio Tips to Increase Your Productivity來摘要一下一些可以提升使用VS生產效率的方式

*productivity power tool
將無用行縮減25%
存檔時自動格式化(等同於使用ctrl+k, ctrl+d)

Visual Studio省時間小撇步