diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..530957f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +# Rules in this file were initially inferred by Visual Studio IntelliCode from the G:\C语言\爬虫 codebase based on best match to current usage at 2022/2/21 +# You can modify the rules from these initially generated values to suit your own policies +# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference +[*.cs] + diff --git a/README.md b/README.md new file mode 100644 index 0000000..72d52c7 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +

爬虫

+ +

  开发语言: + +​     C++ +

  开发工具: + +​     Visual Studio 2022 + +

  功能介绍: + + +​     支持爬取http协议和https协议网页的所有图片 + +

  使用说明: + + +​     爬取到的所有图片都会保存到G盘的图片文件夹中 diff --git a/x64/Debug/libcrypto-1_1-x64.dll b/x64/Debug/libcrypto-1_1-x64.dll new file mode 100644 index 0000000..afa17cc Binary files /dev/null and b/x64/Debug/libcrypto-1_1-x64.dll differ diff --git a/x64/Debug/libssl-1_1-x64.dll b/x64/Debug/libssl-1_1-x64.dll new file mode 100644 index 0000000..3b0b02b Binary files /dev/null and b/x64/Debug/libssl-1_1-x64.dll differ diff --git "a/x64/Debug/\347\210\254\350\231\253.exe" "b/x64/Debug/\347\210\254\350\231\253.exe" new file mode 100644 index 0000000..74af5db Binary files /dev/null and "b/x64/Debug/\347\210\254\350\231\253.exe" differ diff --git "a/x64/Debug/\347\210\254\350\231\253.exp" "b/x64/Debug/\347\210\254\350\231\253.exp" new file mode 100644 index 0000000..382f736 Binary files /dev/null and "b/x64/Debug/\347\210\254\350\231\253.exp" differ diff --git "a/x64/Debug/\347\210\254\350\231\253.lib" "b/x64/Debug/\347\210\254\350\231\253.lib" new file mode 100644 index 0000000..0216497 Binary files /dev/null and "b/x64/Debug/\347\210\254\350\231\253.lib" differ diff --git "a/x64/Debug/\347\210\254\350\231\253.pdb" "b/x64/Debug/\347\210\254\350\231\253.pdb" new file mode 100644 index 0000000..933ee78 Binary files /dev/null and "b/x64/Debug/\347\210\254\350\231\253.pdb" differ diff --git "a/x64/Release/\347\210\254\350\231\253.exe" "b/x64/Release/\347\210\254\350\231\253.exe" new file mode 100644 index 0000000..952751a Binary files /dev/null and "b/x64/Release/\347\210\254\350\231\253.exe" differ diff --git "a/x64/Release/\347\210\254\350\231\253.exp" "b/x64/Release/\347\210\254\350\231\253.exp" new file mode 100644 index 0000000..70af983 Binary files /dev/null and "b/x64/Release/\347\210\254\350\231\253.exp" differ diff --git "a/x64/Release/\347\210\254\350\231\253.lib" "b/x64/Release/\347\210\254\350\231\253.lib" new file mode 100644 index 0000000..5ac5d3d Binary files /dev/null and "b/x64/Release/\347\210\254\350\231\253.lib" differ diff --git "a/x64/Release/\347\210\254\350\231\253.pdb" "b/x64/Release/\347\210\254\350\231\253.pdb" new file mode 100644 index 0000000..78071e4 Binary files /dev/null and "b/x64/Release/\347\210\254\350\231\253.pdb" differ diff --git "a/\347\210\254\350\231\253.sln" "b/\347\210\254\350\231\253.sln" new file mode 100644 index 0000000..d2743c6 --- /dev/null +++ "b/\347\210\254\350\231\253.sln" @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32112.339 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "爬虫", "爬虫\爬虫.vcxproj", "{C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Debug|x64.ActiveCfg = Debug|x64 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Debug|x64.Build.0 = Debug|x64 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Debug|x86.ActiveCfg = Debug|Win32 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Debug|x86.Build.0 = Debug|Win32 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Release|x64.ActiveCfg = Release|x64 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Release|x64.Build.0 = Release|x64 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Release|x86.ActiveCfg = Release|Win32 + {C2D0D86A-1D78-45CD-A1BF-A73EC06CFB5B}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {46C43DE5-59D3-44AC-8B4D-0435992A1061} + EndGlobalSection +EndGlobal diff --git "a/\347\210\254\350\231\253/x64/Debug/CodeAnalysisResultManifest.txt" "b/\347\210\254\350\231\253/x64/Debug/CodeAnalysisResultManifest.txt" new file mode 100644 index 0000000..4b3609a Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/CodeAnalysisResultManifest.txt" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/vc.nativecodeanalysis.all.xml" "b/\347\210\254\350\231\253/x64/Debug/vc.nativecodeanalysis.all.xml" new file mode 100644 index 0000000..83f4184 --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/vc.nativecodeanalysis.all.xml" @@ -0,0 +1,979 @@ + + + + + 0 + 0 + + 6800 + 通过 /analyze:ruleset 或 /analyze:external:ruleset 选项指定的规则集文件无法成功分析,将被忽略。 + + + 0 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 85 + 5 + + 26440 + 函数 file_path 可以声明为 noexcept (f.6)。 + file_path + ?file_path@@YAXXZ + 85 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 159 + 7 + + 6031 + 返回值被忽略: “sscanf”。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 152 + 14 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 152 + 14 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 162 + 1 + + 26401 + 请勿删除不是 owner<T> 的原始指针(i.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 162 + 1 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 157 + 10 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 159 + 7 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 160 + 7 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 161 + 7 + + 26485 + 表达式 g_Object: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 198 + 7 + + 6387 + "p->h_addr_list[0]" 可以是 "0"。 + Connect + ?Connect@@YA_NXZ + 167 + 1 + 4 + + mspft + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 170 + 9 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 171 + 7 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 174 + 8 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 175 + 12 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 178 + 10 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 179 + 7 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 184 + 11 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 184 + 32 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 188 + 8 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 190 + 11 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 190 + 34 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 197 + 13 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 198 + 7 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 178 + 27 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 184 + 32 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 185 + 9 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 190 + 34 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 192 + 46 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 198 + 7 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 167 + 5 + + 26440 + 函数 Connect 可以声明为 noexcept (f.6)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 192 + 48 + + 26493 + 请勿使用 C 样式转换(type.4)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 202 + 37 + + 26493 + 请勿使用 C 样式转换(type.4)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 207 + 5 + + 26440 + 函数 SSL_Connect 可以声明为 noexcept (f.6)。 + SSL_Connect + ?SSL_Connect@@YA_NXZ + 207 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 251 + 8 + + 26485 + 表达式 temp1: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 254 + 11 + + 26485 + 表达式 g_Object: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 255 + 13 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 267 + 25 + + 26485 + 表达式 buff: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 269 + 14 + + 26482 + 只使用常量表达式在数组中编制索引(bounds.2)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 270 + 10 + + 26485 + 表达式 buff: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 272 + 8 + + 26485 + 表达式 buff: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 269 + 12 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 264 + 6 + + 26494 + 未初始化变量 buff。始终初始化对象(type.5)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + buff + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 282 + 17 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 282 + 17 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 286 + 13 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 286 + 13 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 289 + 11 + + 26401 + 请勿删除不是 owner<T> 的原始指针(i.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 289 + 11 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 282 + 33 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 283 + 21 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 286 + 26 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 287 + 20 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 296 + 24 + + 26814 + 可在编译时计算常量变量“newsize”。请考虑使用 constexpr (con.5)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 295 + 8 + + 26496 + 变量“origsize”在构造后不会变化,请将其标记为 const (con.4)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 298 + 37 + + 26408 + 避免使用 malloc()和 free(),首选 nothrow 版本的 new 与 delete (r.10)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 293 + 8 + + 26440 + 函数 stringToLPCWSTR 可以声明为 noexcept (f.6)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 298 + 21 + + 26493 + 请勿使用 C 样式转换(type.4)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 314 + 5 + + 6244 + “number”的局部声明遮蔽了此前位于“25”行(“g:\c语言\爬虫\爬虫\爬虫.cpp”中)的声明。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 25 + 4 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 317 + 35 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 317 + 21 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 325 + 15 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 333 + 28 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 333 + 15 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 341 + 29 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 381 + 8 + + 26496 + 变量“len”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 382 + 5 + + 26496 + 变量“nmlen”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 397 + 8 + + 26496 + 变量“lenname”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 398 + 5 + + 26496 + 变量“namelen”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 403 + 9 + + 26496 + 变量“hr”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 383 + 19 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 383 + 19 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 399 + 20 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 399 + 20 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 389 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 390 + 8 + + 26485 + 表达式 tempfp: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 391 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 392 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 393 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 396 + 13 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/x64/Debug/vc143.idb" "b/\347\210\254\350\231\253/x64/Debug/vc143.idb" new file mode 100644 index 0000000..5b6cbad Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/vc143.idb" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/vc143.pdb" "b/\347\210\254\350\231\253/x64/Debug/vc143.pdb" new file mode 100644 index 0000000..0c44a1b Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/vc143.pdb" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.Build.CppClean.log" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.Build.CppClean.log" new file mode 100644 index 0000000..4d11bd0 --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.Build.CppClean.log" @@ -0,0 +1,18 @@ +g:\c语言\爬虫\爬虫\x64\debug\vc143.pdb +g:\c语言\爬虫\爬虫\x64\debug\vc143.idb +g:\c语言\爬虫\爬虫\x64\debug\爬虫.nativecodeanalysis.sarif +g:\c语言\爬虫\爬虫\x64\debug\爬虫.nativecodeanalysis.xml +g:\c语言\爬虫\爬虫\x64\debug\爬虫.obj +g:\c语言\爬虫\爬虫\x64\debug\爬虫.ilk +g:\c语言\爬虫\x64\debug\爬虫.exe +g:\c语言\爬虫\x64\debug\爬虫.pdb +g:\c语言\爬虫\x64\debug\爬虫.lib +g:\c语言\爬虫\x64\debug\爬虫.exp +g:\c语言\爬虫\爬虫\x64\debug\vc.nativecodeanalysis.all.xml +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\cl.command.1.tlog +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\cl.read.1.tlog +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\cl.write.1.tlog +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\link.command.1.tlog +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\link.read.1.tlog +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\link.write.1.tlog +g:\c语言\爬虫\爬虫\x64\debug\爬虫.tlog\爬虫.write.1u.tlog diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.exe.recipe" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.exe.recipe" new file mode 100644 index 0000000..bd34a00 --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.exe.recipe" @@ -0,0 +1,11 @@ + + + + + G:\C语言\爬虫\x64\Debug\爬虫.exe + + + + + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.ilk" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.ilk" new file mode 100644 index 0000000..484dd47 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.ilk" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.log" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.log" new file mode 100644 index 0000000..9cbf813 --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.log" @@ -0,0 +1,10 @@ + 爬虫.cpp +G:\C语言\爬虫\爬虫\爬虫.cpp(269,30): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(386,29): warning C4244: “参数”: 从“SOCKET”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(416,52): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(441,5): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(592,74): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(594,68): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(608,81): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(610,74): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 + 爬虫.vcxproj -> G:\C语言\爬虫\x64\Debug\爬虫.exe diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.nativecodeanalysis.sarif" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.nativecodeanalysis.sarif" new file mode 100644 index 0000000..2d867cc --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.nativecodeanalysis.sarif" @@ -0,0 +1,2187 @@ +{ + "version": "2.1.0", + "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", + "runs": [ + { + "results": [ + { + "ruleId": "C6800", + "message": { + "text": "通过 /analyze:ruleset 或 /analyze:external:ruleset 选项指定的规则集文件无法成功分析,将被忽略。" + }, + "locations": [] + }, + { + "ruleId": "C6800", + "message": { + "text": "通过 /analyze:ruleset 或 /analyze:external:ruleset 选项指定的规则集文件无法成功分析,将被忽略。" + }, + "locations": [] + }, + { + "ruleId": "C26440", + "message": { + "text": "函数 file_path 可以声明为 noexcept (f.6)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 85, + "startColumn": 6, + "endLine": 85, + "endColumn": 6 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "file_path", + "decoratedName": "?file_path@@YAXXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C6031", + "message": { + "text": "返回值被忽略: “sscanf”。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 159, + "startColumn": 2, + "endLine": 159, + "endColumn": 33 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 152, + "startColumn": 39, + "endLine": 152, + "endColumn": 39 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26400", + "message": { + "text": "请勿将包含owner返回值的分配或函数调用结果分配给原始指针,请改用owner (i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 152, + "startColumn": 15, + "endLine": 152, + "endColumn": 39 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26401", + "message": { + "text": "请勿删除不是 owner 的原始指针(i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 162, + "startColumn": 2, + "endLine": 162, + "endColumn": 11 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 162, + "startColumn": 2, + "endLine": 162, + "endColumn": 11 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26481", + "message": { + "text": "请勿使用指针算法。改用 span (bounds.1)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 157, + "startColumn": 7, + "endLine": 157, + "endColumn": 14 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Host: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 159, + "startColumn": 2, + "endLine": 159, + "endColumn": 33 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Object: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 159, + "startColumn": 2, + "endLine": 159, + "endColumn": 33 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Host: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 160, + "startColumn": 2, + "endLine": 160, + "endColumn": 26 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Object: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 161, + "startColumn": 2, + "endLine": 161, + "endColumn": 26 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Analyse", + "decoratedName": "?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C6387", + "message": { + "text": "\"p->h_addr_list[0]\" 可以是 \"0\"。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 198, + "startColumn": 2, + "endLine": 198, + "endColumn": 34 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ], + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 170, + "startColumn": 10 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 171, + "startColumn": 8 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 174, + "startColumn": 9 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 175, + "startColumn": 13 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 178, + "startColumn": 11 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 179, + "startColumn": 8 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 184, + "startColumn": 12 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 184, + "startColumn": 33 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 188, + "startColumn": 9 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 190, + "startColumn": 12 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 190, + "startColumn": 35 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 197, + "startColumn": 14 + } + } + }, + "importance": "unimportant" + }, + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 198, + "startColumn": 8 + } + } + }, + "importance": "unimportant" + } + ] + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Host: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 178, + "startColumn": 15, + "endLine": 178, + "endColumn": 29 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26481", + "message": { + "text": "请勿使用指针算法。改用 span (bounds.1)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 184, + "startColumn": 19, + "endLine": 184, + "endColumn": 33 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26481", + "message": { + "text": "请勿使用指针算法。改用 span (bounds.1)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 185, + "startColumn": 4, + "endLine": 185, + "endColumn": 54 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26481", + "message": { + "text": "请勿使用指针算法。改用 span (bounds.1)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 190, + "startColumn": 19, + "endLine": 190, + "endColumn": 35 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26481", + "message": { + "text": "请勿使用指针算法。改用 span (bounds.1)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 192, + "startColumn": 38, + "endLine": 192, + "endColumn": 82 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26481", + "message": { + "text": "请勿使用指针算法。改用 span (bounds.1)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 198, + "startColumn": 2, + "endLine": 198, + "endColumn": 34 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26440", + "message": { + "text": "函数 Connect 可以声明为 noexcept (f.6)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 167, + "startColumn": 6, + "endLine": 167, + "endColumn": 6 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26493", + "message": { + "text": "请勿使用 C 样式转换(type.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 192, + "startColumn": 49, + "endLine": 192, + "endColumn": 82 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26493", + "message": { + "text": "请勿使用 C 样式转换(type.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 202, + "startColumn": 38, + "endLine": 202, + "endColumn": 50 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Connect", + "decoratedName": "?Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26440", + "message": { + "text": "函数 SSL_Connect 可以声明为 noexcept (f.6)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 207, + "startColumn": 6, + "endLine": 207, + "endColumn": 6 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SSL_Connect", + "decoratedName": "?SSL_Connect@@YA_NXZ", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 temp1: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 251, + "startColumn": 2, + "endLine": 251, + "endColumn": 23 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Object: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 254, + "startColumn": 12 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 g_Host: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 255, + "startColumn": 14 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 buff: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 267, + "startColumn": 18, + "endLine": 267, + "endColumn": 44 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26482", + "message": { + "text": "只使用常量表达式在数组中编制索引(bounds.2)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 269, + "startColumn": 3, + "endLine": 269, + "endColumn": 17 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 buff: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 270, + "startColumn": 11, + "endLine": 270, + "endColumn": 20 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 buff: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 272, + "startColumn": 3, + "endLine": 272, + "endColumn": 26 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 269, + "startColumn": 3, + "endLine": 269, + "endColumn": 13 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26494", + "message": { + "text": "未初始化变量 buff。始终初始化对象(type.5)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 264, + "startColumn": 7, + "endLine": 264, + "endColumn": 7 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Gethtml", + "decoratedName": "?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ], + "properties": { + "targetSymbol": "buff" + } + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 282, + "startColumn": 18 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26400", + "message": { + "text": "请勿将包含owner返回值的分配或函数调用结果分配给原始指针,请改用owner (i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 282, + "startColumn": 18, + "endLine": 282, + "endColumn": 18 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 286, + "startColumn": 14 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26400", + "message": { + "text": "请勿将包含owner返回值的分配或函数调用结果分配给原始指针,请改用owner (i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 286, + "startColumn": 14, + "endLine": 286, + "endColumn": 14 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26401", + "message": { + "text": "请勿删除不是 owner 的原始指针(i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 289, + "startColumn": 12, + "endLine": 289, + "endColumn": 21 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 289, + "startColumn": 12, + "endLine": 289, + "endColumn": 21 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26451", + "message": { + "text": "算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 282, + "startColumn": 34 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26451", + "message": { + "text": "算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 283, + "startColumn": 18, + "endLine": 283, + "endColumn": 24 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26451", + "message": { + "text": "算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 286, + "startColumn": 27 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26451", + "message": { + "text": "算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 287, + "startColumn": 17, + "endLine": 287, + "endColumn": 23 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "UtfToGbk", + "decoratedName": "?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26814", + "message": { + "text": "可在编译时计算常量变量“newsize”。请考虑使用 constexpr (con.5)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 296, + "startColumn": 25, + "endLine": 296, + "endColumn": 25 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "stringToLPCWSTR", + "decoratedName": "?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26496", + "message": { + "text": "变量“origsize”在构造后不会变化,请将其标记为 const (con.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 295, + "startColumn": 9, + "endLine": 295, + "endColumn": 36 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "stringToLPCWSTR", + "decoratedName": "?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26408", + "message": { + "text": "避免使用 malloc()和 free(),首选 nothrow 版本的 new 与 delete (r.10)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 298, + "startColumn": 32, + "endLine": 298, + "endColumn": 74 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "stringToLPCWSTR", + "decoratedName": "?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26440", + "message": { + "text": "函数 stringToLPCWSTR 可以声明为 noexcept (f.6)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 293, + "startColumn": 9, + "endLine": 293, + "endColumn": 9 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "stringToLPCWSTR", + "decoratedName": "?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26493", + "message": { + "text": "请勿使用 C 样式转换(type.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 298, + "startColumn": 22, + "endLine": 298, + "endColumn": 74 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "stringToLPCWSTR", + "decoratedName": "?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C6244", + "message": { + "text": "“number”的局部声明遮蔽了此前位于“25”行(“g:\\c语言\\爬虫\\爬虫\\爬虫.cpp”中)的声明。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 314, + "startColumn": 6, + "endLine": 314, + "endColumn": 15 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ], + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 25, + "startColumn": 5 + } + } + }, + "importance": "important" + } + ] + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 317, + "startColumn": 31, + "endLine": 317, + "endColumn": 36 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 317, + "startColumn": 17, + "endLine": 317, + "endColumn": 22 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 325, + "startColumn": 11, + "endLine": 325, + "endColumn": 16 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 333, + "startColumn": 21, + "endLine": 333, + "endColumn": 29 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 333, + "startColumn": 8, + "endLine": 333, + "endColumn": 16 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26446", + "message": { + "text": "优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 341, + "startColumn": 22, + "endLine": 341, + "endColumn": 30 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "results", + "decoratedName": "?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26496", + "message": { + "text": "变量“len”在构造后不会变化,请将其标记为 const (con.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 381, + "startColumn": 9, + "endLine": 381, + "endColumn": 25 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26496", + "message": { + "text": "变量“nmlen”在构造后不会变化,请将其标记为 const (con.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 382, + "startColumn": 6, + "endLine": 382, + "endColumn": 73 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26496", + "message": { + "text": "变量“lenname”在构造后不会变化,请将其标记为 const (con.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 397, + "startColumn": 9, + "endLine": 397, + "endColumn": 30 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26496", + "message": { + "text": "变量“namelen”在构造后不会变化,请将其标记为 const (con.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 398, + "startColumn": 6, + "endLine": 398, + "endColumn": 80 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26496", + "message": { + "text": "变量“hr”在构造后不会变化,请将其标记为 const (con.4)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 403, + "startColumn": 10, + "endLine": 403, + "endColumn": 59 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 383, + "startColumn": 20 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26400", + "message": { + "text": "请勿将包含owner返回值的分配或函数调用结果分配给原始指针,请改用owner (i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 383, + "startColumn": 20, + "endLine": 383, + "endColumn": 20 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26409", + "message": { + "text": "避免显式调用 new 和 delete,请改用 std::make_unique (r.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 399, + "startColumn": 21 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26400", + "message": { + "text": "请勿将包含owner返回值的分配或函数调用结果分配给原始指针,请改用owner (i.11)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 399, + "startColumn": 21, + "endLine": 399, + "endColumn": 21 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 filename: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 389, + "startColumn": 2, + "endLine": 389, + "endColumn": 19 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 tempfp: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 390, + "startColumn": 2, + "endLine": 390, + "endColumn": 24 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 filename: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 391, + "startColumn": 2, + "endLine": 391, + "endColumn": 19 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 tempfp: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 391, + "startColumn": 2, + "endLine": 391, + "endColumn": 19 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 filename: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 392, + "startColumn": 2, + "endLine": 392, + "endColumn": 19 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 filename: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 393, + "startColumn": 2, + "endLine": 393, + "endColumn": 17 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + }, + { + "ruleId": "C26485", + "message": { + "text": "表达式 filename: 没有数组要进行指针转型(bounds.3)。" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "region": { + "startLine": 396, + "startColumn": 14, + "endLine": 396, + "endColumn": 16 + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "Download", + "decoratedName": "?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", + "kind": "function" + } + ] + } + ] + } + ], + "tool": { + "driver": { + "name": "PREfast", + "fullName": "PREfast Code Analysis", + "version": "14.31.31104.0", + "informationUri": "https://aka.ms/cpp/ca" + } + }, + "invocations": [ + { + "commandLine": "E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\bin\\HostX64\\x64\\c1xx.dll -ACf{1F7B090C-16DB-4822-966A-A93D26ED4681} -ACpmspft140.dll -Alint -D_PREFAST_ -D_AST_FE_ -Analyze -zm0x00007FF6BE139CC0 -il C:\\Users\\Lenovo\\AppData\\Local\\Temp\\_CL_0f7008dbast -typedil -f 爬虫.cpp -Ze -D_MSC_EXTENSIONS -Zp16 -pc \\:/ -D_MSC_VER=1931 -D_MSC_FULL_VER=193131104 -D_MSC_BUILD=0 -D_M_AMD64=100 -ZILP448 -D_M_X64=100 -D_WIN64 -D_WIN32 -GR -D_CPPRTTI -nologo -W 3 -diagnostics:column -D_GUARDOVERFLOW_CRT_ALLOCATORS=1 -Ot -DCODE_ANALYSIS -D_DEBUG -D_CONSOLE -D_UNICODE -DUNICODE -EHs -D_CPPUNWIND -EHc -D__MSVC_RUNTIME_CHECKS -RTCs -RTCu -MDd -D_DEBUG -D_MT -D_DLL -GS -D_M_FP_PRECISE -Zc:wchar_t -Zc:forScope -permissive- -Fox64\\Debug\\爬虫.obj -Fdx64\\Debug\\vc143.pdb -external:W 3 -Gd -analyze:projectdirectory G:\\C语言\\爬虫\\爬虫 -analyze:rulesetdirectory ;E:\\VS\\主程序\\Team Tools\\Static Analysis Tools\\\\Rule Sets; -analyze:ruleset E:\\VS\\主程序\\Team Tools\\Static Analysis Tools\\Rule Sets\\NativeRecommendedRules.ruleset -analyze:quiet -analyze:plugin E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\bin\\HostX64\\x64\\EspXEngine.dll -FC -errorreport:prompt -I E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\include -I E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\atlmfc\\include -I E:\\VS\\主程序\\VC\\Auxiliary\\VS\\include -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\ucrt -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\um -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\shared -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\winrt -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\cppwinrt -I G:\\C语言\\爬虫\\爬虫\\Include\\um -external:I E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\include -I E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\include -external:I E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\atlmfc\\include -I E:\\VS\\主程序\\VC\\Tools\\MSVC\\14.31.31103\\atlmfc\\include -external:I E:\\VS\\主程序\\VC\\Auxiliary\\VS\\include -I E:\\VS\\主程序\\VC\\Auxiliary\\VS\\include -external:I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\ucrt -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\ucrt -external:I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\um -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\um -external:I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\shared -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\shared -external:I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\winrt -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\winrt -external:I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\cppwinrt -I E:\\Windows Kits\\10\\Include\\10.0.20348.0\\cppwinrt -external:I G:\\C语言\\爬虫\\爬虫\\Include\\um -I G:\\C语言\\爬虫\\爬虫\\Include\\um", + "executionSuccessful": true + } + ], + "artifacts": [ + { + "location": { + "uri": "file:///G:/C语言/爬虫/爬虫/爬虫.cpp" + }, + "roles": [ + "analysisTarget", + "resultFile" + ], + "hashes": { + "sha-256": "8e242abbbe5406c31734ff4365f0743d0f6354e2021c8bbe809e71e1bc427afc" + } + } + ] + } + ] +} \ No newline at end of file diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.nativecodeanalysis.xml" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.nativecodeanalysis.xml" new file mode 100644 index 0000000..d8174ce --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.nativecodeanalysis.xml" @@ -0,0 +1,1091 @@ + + + + + + + 0 + 0 + + 6800 + 通过 /analyze:ruleset 或 /analyze:external:ruleset 选项指定的规则集文件无法成功分析,将被忽略。 + + + 0 + + + + + + + 0 + 0 + + 6800 + 通过 /analyze:ruleset 或 /analyze:external:ruleset 选项指定的规则集文件无法成功分析,将被忽略。 + + + 0 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 85 + 5 + + 26440 + 函数 file_path 可以声明为 noexcept (f.6)。 + file_path + ?file_path@@YAXXZ + 85 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 159 + 7 + + 6031 + 返回值被忽略: “sscanf”。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 152 + 14 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 152 + 14 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 162 + 1 + + 26401 + 请勿删除不是 owner<T> 的原始指针(i.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 162 + 1 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 157 + 10 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 159 + 7 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 159 + 7 + + 26485 + 表达式 g_Object: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 160 + 7 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 161 + 7 + + 26485 + 表达式 g_Object: 没有数组要进行指针转型(bounds.3)。 + Analyse + ?Analyse@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 150 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 198 + 7 + + 6387 + "p->h_addr_list[0]" 可以是 "0"。 + Connect + ?Connect@@YA_NXZ + 167 + 1 + 4 + + mspft + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 170 + 9 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 171 + 7 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 174 + 8 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 175 + 12 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 178 + 10 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 179 + 7 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 184 + 11 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 184 + 32 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 188 + 8 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 190 + 11 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 190 + 34 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 197 + 13 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 198 + 7 + + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 178 + 27 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 184 + 32 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 185 + 9 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 190 + 34 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 192 + 46 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 198 + 7 + + 26481 + 请勿使用指针算法。改用 span (bounds.1)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 167 + 5 + + 26440 + 函数 Connect 可以声明为 noexcept (f.6)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 192 + 48 + + 26493 + 请勿使用 C 样式转换(type.4)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 202 + 37 + + 26493 + 请勿使用 C 样式转换(type.4)。 + Connect + ?Connect@@YA_NXZ + 167 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 207 + 5 + + 26440 + 函数 SSL_Connect 可以声明为 noexcept (f.6)。 + SSL_Connect + ?SSL_Connect@@YA_NXZ + 207 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 251 + 8 + + 26485 + 表达式 temp1: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 254 + 11 + + 26485 + 表达式 g_Object: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 255 + 13 + + 26485 + 表达式 g_Host: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 267 + 25 + + 26485 + 表达式 buff: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 269 + 14 + + 26482 + 只使用常量表达式在数组中编制索引(bounds.2)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 270 + 10 + + 26485 + 表达式 buff: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 272 + 8 + + 26485 + 表达式 buff: 没有数组要进行指针转型(bounds.3)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 269 + 12 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 264 + 6 + + 26494 + 未初始化变量 buff。始终初始化对象(type.5)。 + Gethtml + ?Gethtml@@YA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 248 + + buff + + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 282 + 17 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 282 + 17 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 286 + 13 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 286 + 13 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 289 + 11 + + 26401 + 请勿删除不是 owner<T> 的原始指针(i.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 289 + 11 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 282 + 33 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 283 + 21 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 286 + 26 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 287 + 20 + + 26451 + 算术溢出: 使用 4 字节值上的运算符 + ,然后将结果转换到 8 字节值。在调用运算符 + 之前将值强制转换为宽类型可避免溢出(io.2)。 + UtfToGbk + ?UtfToGbk@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z + 279 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 296 + 24 + + 26814 + 可在编译时计算常量变量“newsize”。请考虑使用 constexpr (con.5)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 295 + 8 + + 26496 + 变量“origsize”在构造后不会变化,请将其标记为 const (con.4)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 298 + 37 + + 26408 + 避免使用 malloc()和 free(),首选 nothrow 版本的 new 与 delete (r.10)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 293 + 8 + + 26440 + 函数 stringToLPCWSTR 可以声明为 noexcept (f.6)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 298 + 21 + + 26493 + 请勿使用 C 样式转换(type.4)。 + stringToLPCWSTR + ?stringToLPCWSTR@@YAPEB_WV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 293 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 314 + 5 + + 6244 + “number”的局部声明遮蔽了此前位于“25”行(“g:\c语言\爬虫\爬虫\爬虫.cpp”中)的声明。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 25 + 4 + + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 317 + 35 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 317 + 21 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 325 + 15 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 333 + 28 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 333 + 15 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 341 + 29 + + 26446 + 优先使用 gsl::at() 而非未选中的下标运算符(bounds.4)。 + results + ?results@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 305 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 381 + 8 + + 26496 + 变量“len”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 382 + 5 + + 26496 + 变量“nmlen”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 397 + 8 + + 26496 + 变量“lenname”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 398 + 5 + + 26496 + 变量“namelen”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 403 + 9 + + 26496 + 变量“hr”在构造后不会变化,请将其标记为 const (con.4)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 383 + 19 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 383 + 19 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 399 + 20 + + 26409 + 避免显式调用 new 和 delete,请改用 std::make_unique<T> (r.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 399 + 20 + + 26400 + 请勿将包含owner<T>返回值的分配或函数调用结果分配给原始指针,请改用owner<T> (i.11)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 389 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 390 + 8 + + 26485 + 表达式 tempfp: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 391 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 391 + 7 + + 26485 + 表达式 tempfp: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 392 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 393 + 7 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + + + G:\C语言\爬虫\爬虫\ + 爬虫.cpp + 396 + 13 + + 26485 + 表达式 filename: 没有数组要进行指针转型(bounds.3)。 + Download + ?Download@@YA_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z + 376 + + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.obj" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.obj" new file mode 100644 index 0000000..68ebf5a Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.obj" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.obj.enc" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.obj.enc" new file mode 100644 index 0000000..a6a50d6 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.obj.enc" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.command.1.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.command.1.tlog" new file mode 100644 index 0000000..26e6980 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.command.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.read.1.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.read.1.tlog" new file mode 100644 index 0000000..3ab758b Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.read.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.write.1.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.write.1.tlog" new file mode 100644 index 0000000..c1f38e6 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/CL.write.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.command.1.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.command.1.tlog" new file mode 100644 index 0000000..9633cfa Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.command.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.read.1.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.read.1.tlog" new file mode 100644 index 0000000..c9f4419 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.read.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.write.1.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.write.1.tlog" new file mode 100644 index 0000000..e6e4873 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/link.write.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.lastbuildstate" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.lastbuildstate" new file mode 100644 index 0000000..e750365 --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.lastbuildstate" @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.31.31103:TargetPlatformVersion=10.0.19041.0: +Debug|x64|G:\C语言\爬虫\| diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.write.1u.tlog" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.write.1u.tlog" new file mode 100644 index 0000000..44ec6a2 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.write.1u.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.vcxproj.FileListAbsolute.txt" "b/\347\210\254\350\231\253/x64/Debug/\347\210\254\350\231\253.vcxproj.FileListAbsolute.txt" new file mode 100644 index 0000000..e69de29 diff --git "a/\347\210\254\350\231\253/x64/Release/err.obj" "b/\347\210\254\350\231\253/x64/Release/err.obj" new file mode 100644 index 0000000..5c26120 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/err.obj" differ diff --git "a/\347\210\254\350\231\253/x64/Release/vc143.pdb" "b/\347\210\254\350\231\253/x64/Release/vc143.pdb" new file mode 100644 index 0000000..d7dedfc Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/vc143.pdb" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.exe.recipe" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.exe.recipe" new file mode 100644 index 0000000..9b12c7b --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.exe.recipe" @@ -0,0 +1,11 @@ + + + + + G:\C语言\爬虫\x64\Release\爬虫.exe + + + + + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.iobj" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.iobj" new file mode 100644 index 0000000..5219722 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.iobj" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.ipdb" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.ipdb" new file mode 100644 index 0000000..75aa36a Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.ipdb" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.log" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.log" new file mode 100644 index 0000000..9180f5c --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.log" @@ -0,0 +1,16 @@ + 爬虫.cpp +G:\C语言\爬虫\爬虫\爬虫.cpp(272,30): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(389,29): warning C4244: “参数”: 从“SOCKET”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(419,52): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(444,5): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(595,74): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(597,68): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(611,81): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 +G:\C语言\爬虫\爬虫\爬虫.cpp(613,74): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 + 正在创建库 G:\C语言\爬虫\x64\Release\爬虫.lib 和对象 G:\C语言\爬虫\x64\Release\爬虫.exp +LINK : warning LNK4232: 名称 爬虫.exe 包含非 ASCII 字符,在具有除 936 以外的 ANSI 代码页的系统上可能不能加载 DLL + 正在生成代码 + Previous IPDB was built with incompatible compiler, fall back to full compilation. + All 1022 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. + 已完成代码的生成 + 爬虫.vcxproj -> G:\C语言\爬虫\x64\Release\爬虫.exe diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.obj" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.obj" new file mode 100644 index 0000000..51037b5 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.obj" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.command.1.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.command.1.tlog" new file mode 100644 index 0000000..bf04d51 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.command.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.read.1.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.read.1.tlog" new file mode 100644 index 0000000..bd2f92d Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.read.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.write.1.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.write.1.tlog" new file mode 100644 index 0000000..190f510 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/CL.write.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.command.1.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.command.1.tlog" new file mode 100644 index 0000000..ccb8258 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.command.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.read.1.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.read.1.tlog" new file mode 100644 index 0000000..b3789a1 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.read.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.write.1.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.write.1.tlog" new file mode 100644 index 0000000..2235a20 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/link.write.1.tlog" differ diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.lastbuildstate" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.lastbuildstate" new file mode 100644 index 0000000..c5a3823 --- /dev/null +++ "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.lastbuildstate" @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.32.31326:TargetPlatformVersion=10.0.19041.0: +Release|x64|G:\C语言\爬虫\| diff --git "a/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.write.1u.tlog" "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.write.1u.tlog" new file mode 100644 index 0000000..f874f60 Binary files /dev/null and "b/\347\210\254\350\231\253/x64/Release/\347\210\254\350\231\253.tlog/\347\210\254\350\231\253.write.1u.tlog" differ diff --git "a/\347\210\254\350\231\253/\347\210\254\350\231\253.cpp" "b/\347\210\254\350\231\253/\347\210\254\350\231\253.cpp" new file mode 100644 index 0000000..8e8b365 --- /dev/null +++ "b/\347\210\254\350\231\253/\347\210\254\350\231\253.cpp" @@ -0,0 +1,626 @@ +#pragma warning(disable:4996) +#include +#include +#include +#include +#include + +#include +#include +#pragma comment(lib,"ws2_32.lib") +#pragma comment(lib, "urlmon.lib") +#pragma comment( lib, "libcrypto.lib" ) +#pragma comment( lib, "libssl.lib" ) + +#ifdef __cplusplus +extern "C" { +#endif +#include +#ifdef __cplusplus +} +#endif + +using namespace std; +int number = 1; +string g_sHost; //http +string g_sObject; //http +char g_Host[MAX_PATH]; //https +char g_Object[MAX_PATH]; //https +SOCKET g_sock; //ͻ׽ +SSL* sslHandle; +SSL_CTX* sslContext; +BIO* bio; + +//ӭ +void welcom(); + +//·· +bool file_path(); + +//ʼץȡURL +void StartCatch_https(string startUrl); //ʹhttpsʼץȡURL +void StartCatch_http(string startUrl); //ʹhttpʼץȡURL + +//URL +bool Analyse(string url,string startUrl); + +//ӷ +bool Connect_https(); //httpsЭ齨TCP +bool Connect_http(); //httpЭ齨TCP + +//SSl +bool SSL_Connect(); + +//õhtml +bool Get_https_html(string& html); //httpsõhtml +string Get_http_html(string& url); //httpõhtml + +//UTFתGBK +std::string UtfToGbk(const char* utf8); +LPCWSTR stringToLPCWSTR(std::string orig); + +//URL +bool results_https(string html, string startUrl); //ʹhttpsЭURL +bool results_http(string html, string startUrl); //ʹhttpЭURL + +//ͼƬ +bool Download(string imagurl); + +//ͷ +bool Release(string url); + +int main() +{ + //ӭʹ + welcom(); + + cout << "һ" << number-1 << "ͼƬ" << endl; + + system("pause"); + return 0; +} + +void welcom() +{ + printf("**********************************\n"); + printf("* *\n"); + printf("* ãӭʹã *\n"); + printf("* *\n"); + printf("* *\n"); + printf("* *\n"); + printf("* QQ3534358548 *\n"); + printf("* *\n"); + printf("**********************************\n"); + printf("һ֧㣨URLڣ"); + + //鿴Ƿд洢ƬĿ¼ + if (access("G:\\tupian", 0) != 0) + { + CreateDirectory(L"G:\\tupian", NULL); + } + + //ʼץȡ + string starturl; + cin >> starturl; + + //жhttpЭ黹httpsЭ + if (starturl.find("https://") == string::npos) + { + if (starturl.find("http://") == string::npos) + { + printf("URLURLǰϡhttp://ߡhttps://\n"); + } + else + { + //ʹhttpЭץȡ + StartCatch_http(starturl); + } + + } + else + { + //ʹhttpsЭץȡ + StartCatch_https(starturl); + } + +} + +//· +bool file_path() +{ + if (access("G:\\tupian", 0) == 0) + { + CreateDirectory(L"G:\\tupian", NULL); + } + return true; +} + +//ʹhttpsЭ鿪ʼץȡURL +void StartCatch_https(string startUrl) +{ + queue q; + q.push(startUrl); + + while (!q.empty()) + { + string cururl = q.front(); + q.pop(); + + //URL + if (false == Analyse(cururl, startUrl)) + { + cout << "URLʧܣ룺" << GetLastError() << endl; + continue; + } + + //ӷ + if (false == Connect_https()) + { + cout << "ӷʧܣ룺" << GetLastError() << endl; + continue; + } + + //ssl + if (false == SSL_Connect()) + { + cout << "SSLʧܣ룺" << GetLastError() << endl; + continue; + } + + //ȡҳ + string html; + if (false == (Get_https_html(html))) + { + cout << "ȡҳʧܣ룺" << GetLastError() << endl; + continue; + } + + //ȡͼƬURLͼƬ + results_https(html, startUrl); + + } + while (!q.empty()) + { + string cururl = q.front(); + Release(cururl); + } + +} + +//ʹhttpʼץȡURL +void StartCatch_http(string startUrl) +{ + queue q; + q.push(startUrl); + + while (!q.empty()) + { + string cururl = q.front(); + q.pop(); + + //string html = Get_http_html(html); + + + //URL + if (false == Analyse(cururl, startUrl)) + { + cout << "URLʧܣ룺" << GetLastError() << endl; + continue; + } + + //ӷ + if (false == Connect_http()) + { + cout << "ӷʧܣ룺" << GetLastError() << endl; + continue; + } + + //ȡҳ + string html= Get_http_html(html); + //cout << html << endl; //ҳ + if (html == "") + { + cout << "ȡҳʧܣ룺" << GetLastError() << endl; + continue; + } + + //ȡͼƬURLͼƬ + results_http(html, startUrl); + } +} + +bool Release(string url) +{ + char* pUrl = new char[url.length() + 1]; + if (char* pos = strstr(pUrl, "https://")) + { + //ͷ + SSL_shutdown(sslHandle); + SSL_free(sslHandle); + SSL_CTX_free(sslContext); + } + //ص׽ + closesocket(g_sock); + //ͷ + WSACleanup(); + + return true; +} + +//url +bool Analyse(string url, string startUrl) +{ + char* pUrl = new char[url.length() + 1]; + strcpy(pUrl, url.c_str()); + + if (char* pos = strstr(pUrl, "https://"))//ҵhttps://ͷַ + { + //char* po = strstr(pUrl, "https://"); + if (pos == NULL) return false; + else pos += 8;//http://ͷʡ + + sscanf(pos, "%[^/]%s", g_Host, g_Object); + printf("%s\n", g_Host); + printf("Դ%s\n", g_Object); + delete[] pUrl; + } + else { + if (string::npos == url.find("http://")) + return false; + if(url.length()<=7) + return false; + int pos1 = url.find('/', 7); + if (pos1 == string::npos) + { + g_sHost = url.substr(7); + g_sObject = "/"; + + } + else + { + g_sHost = url.substr(7, pos1 - 7); + g_sObject = url.substr(pos1); + } + if (g_sHost.empty() || g_sObject.empty()) + return false; + + cout << "" << g_sHost << endl; + cout << "Դ" << g_sObject << endl; + + + } + return true; +} + +//TCP +bool Connect_https() //httpsЭ齨TCP +{ + //ʼ׽ + WSADATA wsadata; + if (0 != WSAStartup(MAKEWORD(2, 2), &wsadata)) + return false; + + //׽ + g_sock = socket(AF_INET, SOCK_STREAM, 0); + if (g_sock == INVALID_SOCKET) + return false; + + //תΪIPַ + hostent* p = gethostbyname(g_Host); //https + //httpsЭ + for (int i = 0; p->h_aliases[i]; i++) + { + printf("վ %d: %s\n", i + 1, p->h_aliases[i]); + } + //ַ + printf("վ: %s\n", (p->h_addrtype == AF_INET) ? "AF_INET" : "AF_INET6"); + //վIPַ + for (int i = 0; p->h_addr_list[i]; i++) + { + printf("վIP%d: %s\n", i + 1, inet_ntoa(*(struct in_addr*)p->h_addr_list[i])); + } + + sockaddr_in sa; + memcpy(&sa.sin_addr, p->h_addr, 4); + sa.sin_family = AF_INET; + sa.sin_port = htons(443); + // + if (SOCKET_ERROR == connect(g_sock, (sockaddr*)&sa, sizeof(sockaddr))) + return false; + + return true; +} +bool Connect_http() //httpЭ齨TCP +{ + //ʼ׽ + WSADATA wsadata; + if (0 != WSAStartup(MAKEWORD(2, 2), &wsadata)) + return false; + + //׽ + g_sock = socket(AF_INET, SOCK_STREAM, 0); + if (g_sock == INVALID_SOCKET) + return false; + + //תΪIPַ + hostent* p = gethostbyname(g_sHost.c_str()); + //httpЭ + if (p == NULL) + return false; + //web + sockaddr_in sa; + sa.sin_family = AF_INET; + sa.sin_port = htons(80); + memcpy(&sa.sin_addr, p->h_addr, 4); + + // + if(connect(g_sock,(sockaddr*) &sa,sizeof(sockaddr))) + return false; + + return true; +} + +//SSl +bool SSL_Connect() +{ + // Register the error strings for libcrypto & libssl + + ERR_load_BIO_strings(); + // SSlijʼSSL㷨еSSLϢ + SSL_library_init(); + OpenSSL_add_all_algorithms(); + SSL_load_error_strings(); + + // New context saying we are a client, and using SSL 2 or 3 + sslContext = SSL_CTX_new(SSLv23_client_method()); + if (sslContext == NULL) + { + ERR_print_errors_fp(stderr); + return false; + } + // Create an SSL struct for the connection + sslHandle = SSL_new(sslContext); + if (sslHandle == NULL) + { + ERR_print_errors_fp(stderr); + return false; + } + // Connect the SSL struct to our connection + if (!SSL_set_fd(sslHandle, g_sock)) + { + ERR_print_errors_fp(stderr); + return false; + } + // Initiate SSL handshake + if (SSL_connect(sslHandle) != 1) + { + ERR_print_errors_fp(stderr); + return false; + } + + return true; +} + +//õ html +bool Get_https_html(string& html) +{ + char temp1[100]; + sprintf(temp1, "%d", 166); + string c_get; + c_get = c_get + + "GET " + g_Object + " HTTP/1.1\r\n" + + "Host: " + g_Host + "\r\n" + + "Content-Type: text/html; charset=UTF-8\r\n" + //+ "Content-Length:" + temp1 + "\r\n" + //+ "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299\r\n" + + "Connection:Close\r\n\r\n"; + //+ temp; + + SSL_write(sslHandle, c_get.c_str(), c_get.length()); + + char buff[101]; + int nreal = 0; + + while ((nreal = SSL_read(sslHandle, buff, 100)) > 0) + { + buff[nreal] = '\0'; + html += UtfToGbk(buff); + //printf("%s\n", buff); + memset(buff, 0, sizeof(buff)); + } + + //printf("%s\n", html); + return true; +} +string Get_http_html(string& url) +{ + + //ȡҳGet + string info; + info += "GET " + g_sObject + " HTTP/1.1\r\n"; + info += "Host: " + g_sHost + "\r\n"; + info += "Connection: Close\r\n\r\n"; + + if (SOCKET_ERROR == send(g_sock, info.c_str(), info.length(), 0)) + return ""; + + // + char ch=0; + string html; + while (recv(g_sock,&ch,sizeof(char),0)) + { + html += ch; + } + + return html; +} + +//UTFתGBK +string UtfToGbk(const char* utf8) +{ + int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0); + wchar_t* wstr = new wchar_t[len + 1]; + memset(wstr, 0, len + 1); + MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len); + len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL); + char* str = new char[len + 1]; + memset(str, 0, len + 1); + WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL); + if (wstr) delete[] wstr; + return str; +} +LPCWSTR stringToLPCWSTR(string orig) +{ + size_t origsize = orig.length() + 1; + const size_t newsize = 100; + size_t convertedChars = 0; + wchar_t* wcstring = (wchar_t*)malloc(sizeof(wchar_t) * (orig.length() - 1)); + mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE); + + return wcstring; +} + +//URL +bool results_https(string html, string startUrl) +{ + //ƥеURL ʽ + smatch mat; + string::const_iterator start = html.begin(); + string::const_iterator end = html.end(); + regex gex("https://[^\\s'\"<>()]+"); + vector vecurl; + int number = 1; //һ + if (regex_search(start, end, mat, gex) != 0) + { + while (regex_search(start, end, mat, gex)) + { + string newurl(mat[0].first, mat[0].second); + + //ȡͼƬ ͼƬ1ʽӡ + cout << "ͼƬ" << number << ":" << newurl << endl; + number++; + + //ѻȡURL + vecurl.push_back(newurl); + start = mat[0].second; + + } + + //еURL + for (int x = 0; x < vecurl.size() - 1; x++) + { + for (int j = x + 1; j < vecurl.size(); j++) + { + if (vecurl[x] != vecurl[j]) + { + //жDzͼƬ + string imagurl = vecurl[x]; + if (imagurl.find(".jpg") != string::npos) + { + Download(imagurl); + } + else if (imagurl.find(".png") != string::npos) + { + Download(imagurl); + } + } + break; + } + + } + } + else + { + Download(startUrl); + cout << startUrl << endl; + } + return true; +} +bool results_http(string html, string startUrl) +{ + + //ƥеURL ʽ + smatch mat; + string::const_iterator start = html.begin(); + string::const_iterator end = html.end(); + regex gex("http://[^\\s'\"<>()]+"); + vector vecurl; + int number = 1; //һ + + while (regex_search(start, end, mat, gex)) + { + string newurl(mat[0].first, mat[0].second); + + //ȡͼƬ ͼƬ1ʽӡ + cout << "ͼƬ" << number << ":" << newurl << endl; + number++; + + //ѻȡURL + vecurl.push_back(newurl); + start = mat[0].second; + } + + //еURL + for (int x = 0; x < vecurl.size() - 1; x++) + { + for (int j = x + 1; j < vecurl.size(); j++) + { + if (vecurl[x] != vecurl[j]) + { + //жDzͼƬ + string imagurl = vecurl[x]; + if (imagurl.find(".jpg") != string::npos) + { + Download(imagurl); + } + else if (imagurl.find(".png") != string::npos) + { + Download(imagurl); + } + } + break; + } + + } + return true; +} + +//ͼƬ +bool Download(string imagurl) +{ + //ͼƬ + //URLת + string url = imagurl; + size_t len = url.length();//ȡַ + int nmlen = MultiByteToWideChar(CP_ACP, 0, url.c_str(), len + 1, NULL, 0); + wchar_t* buffer = new wchar_t[nmlen]; + MultiByteToWideChar(CP_ACP, 0, url.c_str(), len + 1, buffer, nmlen); + //URLת + + //ļ· ļ123...... + char filename[128], tempfp[128]; + strcpy(filename, R"+*(G:\\tupian\\)+*"); //· + sprintf(tempfp, "%d", number); + strcat(filename, tempfp); + strcat(filename, ".jpg"); //صļĸʽ + printf("%s\n", filename); + + //תļ֣· + string name = filename; + size_t lenname = name.length();//ȡַ + int namelen = MultiByteToWideChar(CP_ACP, 0, name.c_str(), lenname + 1, NULL, 0); + wchar_t* buffer1 = new wchar_t[namelen]; + MultiByteToWideChar(CP_ACP, 0, name.c_str(), lenname + 1, buffer1, nmlen); + //תļ֣· ת + + HRESULT hr = URLDownloadToFile(NULL, buffer, buffer1, 0, NULL); //غ + number++; + + //Ƿسɹ + if (hr == S_OK) + { + cout << "-------ok" << endl; + + } + return true; +} \ No newline at end of file diff --git "a/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj" "b/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj" new file mode 100644 index 0000000..5c6eb54 --- /dev/null +++ "b/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj" @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {c2d0d86a-1d78-45cd-a1bf-a73ec06cfb5b} + 爬虫 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + E:\新建文件夹\新建文件夹\OpenSSL-Win64\lib;%(AdditionalLibraryDirectories) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj.filters" "b/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj.filters" new file mode 100644 index 0000000..09a9e79 --- /dev/null +++ "b/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj.filters" @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj.user" "b/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj.user" new file mode 100644 index 0000000..88a5509 --- /dev/null +++ "b/\347\210\254\350\231\253/\347\210\254\350\231\253.vcxproj.user" @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git "a/\347\210\254\350\231\253/\347\210\254\350\231\253\345\216\237\347\220\206\345\233\276.png" "b/\347\210\254\350\231\253/\347\210\254\350\231\253\345\216\237\347\220\206\345\233\276.png" new file mode 100644 index 0000000..7f7b7d8 Binary files /dev/null and "b/\347\210\254\350\231\253/\347\210\254\350\231\253\345\216\237\347\220\206\345\233\276.png" differ