可以測試正規化表示語法,還有簡單語法說明
2021年9月13日 星期一
2021年7月24日 星期六
c++ const method
一個method被標記為const 表示他不會改變所屬class的member,function若能被標記為const應盡量這麼做
class A{
int b;
void c(){
b = 0; // compiling error
};
};
c++ const method
2021年2月14日 星期日
VS code debug時 cout 沒有顯示
在vscode debug時,如果沒有在launch.json中設定externalterminal=true, cout會顯示在Terminal這個Tab中(如果不見可以按ctrl + J)
另一點要注意的是,目前C++的cout需要下
cout.flush();
才會把前面cout的內容印出來
VS code debug時 cout 沒有顯示
2020年5月15日 星期五
2019年6月4日 星期二
visualstudio 預設的 debugging dir
VisualStudio 預設的 debugging dir 是 project directory
但output dir 卻是$(SolutionDir)$(Configuration)\
這會造成在debugger之中執行(F5)跟用執行檔執行結果不同,某些resource會需要另外複製一份
所以建議可以將debubbing / working directory 改成跟output directory依樣會比較方便
但output dir 卻是$(SolutionDir)$(Configuration)\
這會造成在debugger之中執行(F5)跟用執行檔執行結果不同,某些resource會需要另外複製一份
所以建議可以將debubbing / working directory 改成跟output directory依樣會比較方便
visualstudio 預設的 debugging dir
2019年6月2日 星期日
Visual Studio C++程式移植
最近寫好的小程式要放到工作但腦上用
但在工作電腦上會依直出現找不到dll 的問題orz
msvcp150d.dll,ucrtbased.dll..之類的
明明可轉發套件也灌了
後來解決方法是用把configure由debug轉成release因為這樣會轉換到的設定有點多,一時之間也搞不清楚到底是那些設定解決這問題anyway, 問題解決啦 yeah(可轉發套件應該還是要灌, 下載網址:https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)~
題外話, 過程中發現vs2017好像原生沒有可以做steup的功能,需要另外安裝插件Microsoft Visual Studio Installer Projects來做
詳細操作過程可以看這個影片
但在工作電腦上會依直出現找不到dll 的問題orz
msvcp150d.dll,ucrtbased.dll..之類的
明明可轉發套件也灌了
後來解決方法是用把configure由debug轉成release因為這樣會轉換到的設定有點多,一時之間也搞不清楚到底是那些設定解決這問題anyway, 問題解決啦 yeah(可轉發套件應該還是要灌, 下載網址:https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)~
題外話, 過程中發現vs2017好像原生沒有可以做steup的功能,需要另外安裝插件Microsoft Visual Studio Installer Projects來做
詳細操作過程可以看這個影片
但其實這功能對缺少dll這件事情是沒有幫助的,他需要加入的檔案是需要user去手動找出來加入
Visual Studio C++程式移植
C++ local thread
在C++中區域變數在離開scope的時候就會被釋放
所以當在fonction中直接開thread, 一但離開function,該thread就會被釋放掉
ex:
void MyFun()
{
std::thread myThread(&ThisClass::RuningFun, this);
}
所以當在fonction中直接開thread, 一但離開function,該thread就會被釋放掉
ex:
void MyFun()
{
std::thread myThread(&ThisClass::RuningFun, this);
}
C++ local thread
2019年3月28日 星期四
property sheet, 免去設定 include 路徑 , lib路徑...的麻煩
最近都用opencv配合C++, IDE用VS2017開發
每個案子要用到openCv就要設定一次,有點麻煩
這時候A大分享一招,property sheet
每個案子要用到openCv就要設定一次,有點麻煩
這時候A大分享一招,property sheet
property sheet, 免去設定 include 路徑 , lib路徑...的麻煩
2019年3月27日 星期三
C++ 取時間到ms
2019年2月27日 星期三
VS C++ 專案的使用者權限(UAC)
在開發找COM Port的程式的時候會需要用到 Admin的權限
如果沒有權限,指令未必不可執行,但可能發生不可預期的行為
可以在Project 按右鍵 > Properties > Linker > Manifest file 中 將 UAC (User Account control) 設定為 "requireAdministrator" 強迫 User 要用 Admin 執行
如果沒有權限,指令未必不可執行,但可能發生不可預期的行為
可以在Project 按右鍵 > Properties > Linker > Manifest file 中 將 UAC (User Account control) 設定為 "requireAdministrator" 強迫 User 要用 Admin 執行
VS C++ 專案的使用者權限(UAC)
2019年2月13日 星期三
C++ 忽略跳脫字元(Escape Codes)
常常在路徑中都會含有 \的字元,造成\以後的字元與\形成跳脫字元(Escape Codes)
可以用R"()"來避開
ex:
String path = R"(D:\)"
就與
String path = "D:\\" 的結果相同
可以用R"()"來避開
ex:
String path = R"(D:\)"
就與
String path = "D:\\" 的結果相同
C++ 忽略跳脫字元(Escape Codes)
2017年12月8日 星期五
Interface in C++
2017年4月18日 星期二
[c++]msvcp140d.dll
在2015弄了一個c++專案到另外一台電腦跑,那台電腦是win7,沒vs2015。一開始complain沒有msvcp140d.dll,到dll-files下載放好之後換沒有vcruntime140d.dll...
在易春木上找到解答
答案是要compile成release mode就ok(那台電腦上要已經安裝vc2015的可轉發套件)
[c++]msvcp140d.dll
2016年11月13日 星期日
C++ c# raw string literal 原始字串
在C++字串中為了可以表示換行,tab等特殊操作,因此有跳脫字元\
好死不死資料夾路徑也用很多'\'
以前都會使用兩個("\\")表示\,但這樣的問題是在複製路徑後需要經過加工有點麻煩
ex: c:\testFile.txt 需要以 "c:\\testFile.txt"表示,麻煩
C++ 11裡面提供Raw String
表示
R"\a\b\c"
相當於
"\\a\\b\\c"
蠻方便的
在c#中則可以用 @"\a\b\c"
相當於"\\a\\b\\c"
好死不死資料夾路徑也用很多'\'
以前都會使用兩個("\\")表示\,但這樣的問題是在複製路徑後需要經過加工有點麻煩
ex: c:\testFile.txt 需要以 "c:\\testFile.txt"表示,麻煩
C++ 11裡面提供Raw String
表示
R"\a\b\c"
相當於
"\\a\\b\\c"
蠻方便的
在c#中則可以用 @"\a\b\c"
相當於"\\a\\b\\c"
C++ c# raw string literal 原始字串
2016年8月22日 星期一
c++ pointer of address
當需要在method中allocate記憶體並給外部使用時就會需要用到pointer of address。因為address是在method中產生,因此需要傳入address的容器。
c++ pointer of address
2016年8月15日 星期一
C++找不到include檔案
在win10用vs2015打開原廠用2010產生的cpp專案,許多include的檔案都找不到,當然也跑出一拖拉庫的錯誤
從project的property中確定有用還境變數設定搜尋範圍
後來發現要將專案目錄下的.sdf檔刪除,intellisense才會重新去搜尋include的目標
C++找不到include檔案
2016年8月9日 星期二
fopen mode
2016年8月8日 星期一
c++快速讀取(空白)分隔文字檔案
研究了一陣子終於可以快速讀取檔案(一開始讀取時間為7s,改善後為300ms)
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
c++快速讀取(空白)分隔文字檔案
c++快速讀取(空白)分隔文字檔案
研究了一陣子終於可以快速讀取檔案(一開始讀取時間為7s,改善後為300ms)
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
c++快速讀取(空白)分隔文字檔案
訂閱:
文章 (Atom)
