c++ 采坑


vs studio版本 vs2019,boost 是1.71版本

中文官方文檔
https://docs.microsoft.com/zh-cn/cpp/?view=vs-2019#pivot=workloads&panel=workloads1

1,vs studio 設置c++項目的版本

右擊項目->屬性->C/C++->語言->C++ 語言標准。
當設置為默認值(應該即為IOS2014C++14標准)時,_MSVC_LANG值為201402L,
當其值設置為:IOS2014C++14標准時,_MSVC_LANG值為201703L。修改配置后,程序恢復正常

2,vs studio設置 boost庫

先編譯好編譯boost
項目——>屬性——>選擇VC++目錄,在包含目錄 和 庫目錄添加以上2個路徑
包含目錄加上 上 D:\boost_1_71_0\
庫目錄加上 D:\boost_1_71_0\stage\lib

或可以新建一個系統環境變量BOOST_DIR,值為E:\program\boost_1_71_0。
在path系統環境變量中添加:%BOOST_DIR%;
VC++包含目錄中添加: %BOOST_DIR%;
VC++庫目錄中添加: %BOOST_DIR%\stage\lib;

3,錯誤 LNK2005 _main 已經在 tt.obj 中定義

錯誤 LNK1169 找到一個或多個多重定義的符號
一個項目只能有一個main()函數,不然編譯會出錯

4,#pragmaonce這個宏有什么作用?

為了避免同一個頭文件被包含(include)多次,C/C++中有兩種宏實現方式:一種是#ifndef方式;另一種是#pragma once方式。
在能夠支持這兩種方式的編譯器上,二者並沒有太大的區別。但兩者仍然有一些細微的區別。

5,常用快捷鍵

ctrl+k,c 注釋選中行
ctrl+k,u 取消對選中行的注釋
全局 格式化代碼 快捷鍵ctrl+k,在同時按ctrl+d
選中行 ctrl+k, ctrl+f

快速生成代碼—–連續兩次Tab鍵:
例如:
快速生成for循環—使用方法 代碼中輸入for,然后連續按兩次Tab鍵
快速生成try—catch—使用方法 代碼中輸入try,然后連續按兩次Tab鍵

Peek View 快速查看方法/類定義—–Alt +F12:
方法的展開和折疊—–Ctrl+M+P/Ctrl+M+O:

重寫父類的方法—–override +Space(空格):
設置快捷鍵 工具----選項------環境-----鍵盤

6, 在vs studio里面編寫 c項目代碼

https://blog.csdn.net/dingyc_ee/article/details/98075146

7,vs studio在c++項目里添加文件

https://blog.csdn.net/mayue_web/article/details/84030056
點擊Source Files ->add->existing Items ,選擇剛才移除的c/c++文件就可以了。
右鍵項目->添加->現有項,選擇需要添加的文件

8,添加源碼目錄

https://blog.csdn.net/Leichelle/article/details/95049325

9,hpp頭文件與h頭文件的區別

https://blog.csdn.net/follow_blast/article/details/81706698
hpp,其實質就是將.cpp的實現代碼混入.h頭文件當中,定義與實現都包含在同一文件,則該類的調用者只需要include該hpp文件即可,無需再將cpp加入到project中進行編譯。
而實現代碼將直接編譯到調用者的obj文件中,不再生成單獨的obj,采用hpp將大幅度減少調用 project中的cpp文件數與編譯次數,也不用再發布煩人的lib與dll,因此非常適合用來編寫公用的開源庫。

10,This function or variable may be unsafe

_CRT_SECURE_NO_WARNINGS
https://jingyan.baidu.com/article/49711c616b8a1ffa441b7cdc.html

11,C4996 'std::codecvt_utf8<wchar_t,1114111,(std::codecvt_mode)0>':warningSTL4017: std::wbuffer_convert,

 std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, 
 and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) 
 The C++ Standard doesn't provide equivalent non-deprecated functionality; 
 consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. 
 You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge 
 that you have received this warning.	cinatra	D:\cpp\cinatra\cinatra\include\cinatra\url_encode_decode.hpp	52	

在url_encode_decode.hpp上加入#pragma warning(disable:4996),抑制一下警告就ok了
注意不管是調試在x86,還是x64都是沒問題的

12,暫停調試cli,查看輸出結果

 system("pause");
 // 更通用的方法
 std::cin.ignore();

13,C++ #include—尖括號和雙引號的區別

簡單區分:
1,系統自帶的頭文件用尖括號括起來,這樣編譯器會在系統文件目錄下查找。

#include <xxx.h>

2,用戶自定義的文件用雙引號括起來,編譯器首先會在用戶目錄下查找,然后在到C++安裝目錄(比如VC中可以指定和修改庫文件查找路徑,Unix和Linux中可以通過環境變量來設定)中查找,
最后在系統文件中查找。

#include “xxx.h”

盡管以上兩種#include命令都可以正確地被VC++識別了,但是它們卻並不符合C++的標准。標准規定,包含C++提供的標准頭文件或系統頭文件時應使用尖括號,包含自定義頭文件時可使用雙引號。

14,數據類型和范圍

類型 字節長度 范圍
char 1 個字節 -128 到 127 或者 0 到 255
unsigned char 1 個字節 0 到 255
signed char 1 個字節 -128 到 127
int 4 個字節 -2147483648 到 2147483647
unsigned int 4 個字節 0 到 4294967295
signed int 4 個字節 -2147483648 到 2147483647
short int 2 個字節 -32768 到 32767
unsigned short int 2 個字節 0 到 65,535
signed short int 2 個字節 -32768 到 32767
long int 8 個字節 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int 8 個字節 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int 8 個字節 0 到 18,446,744,073,709,551,615
float 4 個字節 精度型占4個字節(32位)內存空間,+/- 3.4e +/- 38 (~7 個數字)
double 8 個字節 雙精度型占8 個字節(64位)內存空間,+/- 1.7e +/- 308 (~15 個數字)
long double 16 個字節 長雙精度型 16 個字節(128位)內存空間,可提供18-19位有效數字。
wchar_t 2 或 4 個字節 1 個寬字符

15,特殊字符

特殊字符 含義
\a 鈴聲(警報聲)
\b 回退
\f 換頁
\n 換行
\r 回車
\t TAB鍵
\v 垂直制表
' 單引號
" 雙引號
? 問號
\ 反斜杠
\000 八進制
\xhhh 十六進制

16,包管理工具

https://www.cnblogs.com/xueweihan/p/11414263.html
個人建議使用微軟的vcpkg,畢竟可以在windows上使用開發測試,可以和Vstudio一起使用

17,c++ orm


https://www.bbsmax.com/A/pRdB8BL2Jn/

18,vcpkg安裝

克隆vcpkg庫
C:\src>
git clone https://github.com/Microsoft/vcpkg.git

國內鏡像 https://gitee.com/mirrors/vcpkg
git clone https://gitee.com/mirrors/vcpkg
這個速度快
然后運行
C:\src>cd vcpkg
C:\src\vcpkg>
bootstrap-vcpkg.bat
然后,運行如下命令使計算機的所有用戶都可以使用vcpkg (備注:需要管理員權限)
C:\src\vcpkg>
vcpkg integrate install
使用vcpkg安裝任何的程序包,如:
C:\src\vcpkg>
vcpkg install sdl2 curl sqlite3
最后,在Visual Studio 2015 or Visual Studio 2017創建新的項目或者打開已經存在的項目。你就可以使用#include引用頭文件並使用安裝的程序庫。

19,入門使用什么web mvc框架入門

2020年8月21日17:35:40
我嘗試了好多框架入門的話,建議現在現代化比較好的drogon 有中文文檔,性能也是非常好的
中文文檔 https://github.com/an-tao/drogon/wiki/01-概述
其他的常見我基本都嘗試了,要么不完善,要么入門復雜,根本不適合入門

20,windows wsl安裝centos

https://blog.csdn.net/qq_18286031/article/details/102931794


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM