From bdac22156b52cc8b02b32365abaf6468aa2e66ea Mon Sep 17 00:00:00 2001 From: linyongji Date: Mon, 11 Jan 2021 22:42:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=86=E6=9E=84=E4=BB=B6?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E7=9A=84=E5=BF=85=E8=A6=81=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add/.vs/add/v16/.suo | Bin 0 -> 40960 bytes add/UnitTest1/UnitTest1.cpp | 33 ++++ add/UnitTest1/UnitTest1.vcxproj | 180 +++++++++++++++++++ add/UnitTest1/UnitTest1.vcxproj.filters | 30 ++++ add/UnitTest1/UnitTest1.vcxproj.user | 4 + add/UnitTest1/pch.cpp | 45 +++++ add/UnitTest1/pch.h | 12 ++ add/add.sln | 41 +++++ add/add/add.cpp | 5 + add/add/add.h | 4 + add/add/add.vcxproj | 150 ++++++++++++++++ add/add/add.vcxproj.filters | 27 +++ add/add/add.vcxproj.user | 4 + add/ex1.ini | 24 +++ add/readme.md | 120 +++++++++++++ dev/.vs/dev/v16/.suo | Bin 0 -> 51712 bytes dev/UnitTest1/UnitTest1.cpp | 86 +++++++++ dev/UnitTest1/UnitTest1.vcxproj | 175 ++++++++++++++++++ dev/UnitTest1/UnitTest1.vcxproj.filters | 30 ++++ dev/UnitTest1/UnitTest1.vcxproj.user | 4 + dev/UnitTest1/pch.cpp | 44 +++++ dev/UnitTest1/pch.h | 14 ++ dev/dev.sln | 41 +++++ dev/dev/Opera_api.cpp | 35 ++++ dev/dev/Opera_api.h | 10 ++ dev/dev/dev.cpp | 15 ++ dev/dev/dev.h | 5 + dev/dev/dev.vcxproj | 156 ++++++++++++++++ dev/dev/dev.vcxproj.filters | 36 ++++ dev/dev/dev.vcxproj.user | 4 + dev/dev/main.cpp | 13 ++ dev/dev/sub.dll | Bin 0 -> 38400 bytes dev/dev/sub.h | 13 ++ dev/dev/sub.lib | Bin 0 -> 1676 bytes dev/ex1.ini | 21 +++ dev/readme.md | 228 ++++++++++++++++++++++++ mul/.vs/mul/v16/.suo | Bin 0 -> 37376 bytes mul/UnitTest1/UnitTest1.cpp | 36 ++++ mul/UnitTest1/UnitTest1.vcxproj | 175 ++++++++++++++++++ mul/UnitTest1/UnitTest1.vcxproj.filters | 30 ++++ mul/UnitTest1/UnitTest1.vcxproj.user | 4 + mul/UnitTest1/pch.cpp | 45 +++++ mul/UnitTest1/pch.h | 12 ++ mul/ex1.ini | 22 +++ mul/mul.sln | 41 +++++ mul/mul/Source.def | 3 + mul/mul/mul.cpp | 11 ++ mul/mul/mul.h | 2 + mul/mul/mul.vcxproj | 157 ++++++++++++++++ mul/mul/mul.vcxproj.filters | 32 ++++ mul/mul/mul.vcxproj.user | 4 + mul/readme.md | 131 ++++++++++++++ sub/.vs/sub/v16/.suo | Bin 0 -> 43520 bytes sub/UnitTest1/UnitTest1.cpp | 35 ++++ sub/UnitTest1/UnitTest1.vcxproj | 175 ++++++++++++++++++ sub/UnitTest1/UnitTest1.vcxproj.filters | 30 ++++ sub/UnitTest1/UnitTest1.vcxproj.user | 4 + sub/UnitTest1/pch.cpp | 45 +++++ sub/UnitTest1/pch.h | 12 ++ sub/ex1.ini | 22 +++ sub/readme.md | 127 +++++++++++++ sub/sub.sln | 41 +++++ sub/sub/sub.cpp | 5 + sub/sub/sub.h | 12 ++ sub/sub/sub.vcxproj | 150 ++++++++++++++++ sub/sub/sub.vcxproj.filters | 27 +++ sub/sub/sub.vcxproj.user | 4 + 67 files changed, 3003 insertions(+) create mode 100644 add/.vs/add/v16/.suo create mode 100644 add/UnitTest1/UnitTest1.cpp create mode 100644 add/UnitTest1/UnitTest1.vcxproj create mode 100644 add/UnitTest1/UnitTest1.vcxproj.filters create mode 100644 add/UnitTest1/UnitTest1.vcxproj.user create mode 100644 add/UnitTest1/pch.cpp create mode 100644 add/UnitTest1/pch.h create mode 100644 add/add.sln create mode 100644 add/add/add.cpp create mode 100644 add/add/add.h create mode 100644 add/add/add.vcxproj create mode 100644 add/add/add.vcxproj.filters create mode 100644 add/add/add.vcxproj.user create mode 100644 add/ex1.ini create mode 100644 add/readme.md create mode 100644 dev/.vs/dev/v16/.suo create mode 100644 dev/UnitTest1/UnitTest1.cpp create mode 100644 dev/UnitTest1/UnitTest1.vcxproj create mode 100644 dev/UnitTest1/UnitTest1.vcxproj.filters create mode 100644 dev/UnitTest1/UnitTest1.vcxproj.user create mode 100644 dev/UnitTest1/pch.cpp create mode 100644 dev/UnitTest1/pch.h create mode 100644 dev/dev.sln create mode 100644 dev/dev/Opera_api.cpp create mode 100644 dev/dev/Opera_api.h create mode 100644 dev/dev/dev.cpp create mode 100644 dev/dev/dev.h create mode 100644 dev/dev/dev.vcxproj create mode 100644 dev/dev/dev.vcxproj.filters create mode 100644 dev/dev/dev.vcxproj.user create mode 100644 dev/dev/main.cpp create mode 100644 dev/dev/sub.dll create mode 100644 dev/dev/sub.h create mode 100644 dev/dev/sub.lib create mode 100644 dev/ex1.ini create mode 100644 dev/readme.md create mode 100644 mul/.vs/mul/v16/.suo create mode 100644 mul/UnitTest1/UnitTest1.cpp create mode 100644 mul/UnitTest1/UnitTest1.vcxproj create mode 100644 mul/UnitTest1/UnitTest1.vcxproj.filters create mode 100644 mul/UnitTest1/UnitTest1.vcxproj.user create mode 100644 mul/UnitTest1/pch.cpp create mode 100644 mul/UnitTest1/pch.h create mode 100644 mul/ex1.ini create mode 100644 mul/mul.sln create mode 100644 mul/mul/Source.def create mode 100644 mul/mul/mul.cpp create mode 100644 mul/mul/mul.h create mode 100644 mul/mul/mul.vcxproj create mode 100644 mul/mul/mul.vcxproj.filters create mode 100644 mul/mul/mul.vcxproj.user create mode 100644 mul/readme.md create mode 100644 sub/.vs/sub/v16/.suo create mode 100644 sub/UnitTest1/UnitTest1.cpp create mode 100644 sub/UnitTest1/UnitTest1.vcxproj create mode 100644 sub/UnitTest1/UnitTest1.vcxproj.filters create mode 100644 sub/UnitTest1/UnitTest1.vcxproj.user create mode 100644 sub/UnitTest1/pch.cpp create mode 100644 sub/UnitTest1/pch.h create mode 100644 sub/ex1.ini create mode 100644 sub/readme.md create mode 100644 sub/sub.sln create mode 100644 sub/sub/sub.cpp create mode 100644 sub/sub/sub.h create mode 100644 sub/sub/sub.vcxproj create mode 100644 sub/sub/sub.vcxproj.filters create mode 100644 sub/sub/sub.vcxproj.user diff --git a/add/.vs/add/v16/.suo b/add/.vs/add/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..27f989d86b5558a02ca480673fcf5b6f97bc60ec GIT binary patch literal 40960 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 PNwJlzHrq;<4f+3nt~3py literal 0 HcmV?d00001 diff --git a/add/UnitTest1/UnitTest1.cpp b/add/UnitTest1/UnitTest1.cpp new file mode 100644 index 0000000..f93fbff --- /dev/null +++ b/add/UnitTest1/UnitTest1.cpp @@ -0,0 +1,33 @@ +#include "pch.h" +#include "CppUnitTest.h" +#include +#include +#include"../add/add.h" +#define FilePath "..//ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + int j = 0; + char str[50][10] = { 0 };//保存ini文件里 节的名字 + int count = CalcCount(50, str);//保存ini文件里 节的个数 + unsigned short i; + TEST_METHOD(TestMethode1) + { + long long nReal;//保存运算结果 + CString na, nb, nExpect; //b保存不同的键值 + for (j = 0; j < count; j++) + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); + nReal = add(_ttoi64(na), _ttoi64(nb)); //_ttoi是CString转为整型 + Assert::AreEqual(nReal, _ttoi64(nExpect)); + } + + } + }; +} diff --git a/add/UnitTest1/UnitTest1.vcxproj b/add/UnitTest1/UnitTest1.vcxproj new file mode 100644 index 0000000..67437bc --- /dev/null +++ b/add/UnitTest1/UnitTest1.vcxproj @@ -0,0 +1,180 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5} + Win32Proj + UnitTest1 + 10.0 + NativeUnitTestProject + + + + DynamicLibrary + true + v142 + MultiByte + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + DynamicLibrary + true + v142 + Unicode + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + ..\add\Debug\add.obj;%(AdditionalDependencies) + DebugFull + + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + _DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Create + Create + Create + Create + + + + + + + + + {b2461a9c-6d35-4906-bce4-723b1e669c20} + + + + + + \ No newline at end of file diff --git a/add/UnitTest1/UnitTest1.vcxproj.filters b/add/UnitTest1/UnitTest1.vcxproj.filters new file mode 100644 index 0000000..83a287b --- /dev/null +++ b/add/UnitTest1/UnitTest1.vcxproj.filters @@ -0,0 +1,30 @@ +锘 + + + + {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/add/UnitTest1/UnitTest1.vcxproj.user b/add/UnitTest1/UnitTest1.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/add/UnitTest1/UnitTest1.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/add/UnitTest1/pch.cpp b/add/UnitTest1/pch.cpp new file mode 100644 index 0000000..d2bdc54 --- /dev/null +++ b/add/UnitTest1/pch.cpp @@ -0,0 +1,45 @@ +锘// pch.cpp: 涓庨缂栬瘧鏍囧ご瀵瑰簲鐨勬簮鏂囦欢 + +#include "pch.h" +#include +#include +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + //str[k][++m] = '\0';//鎵嬪姩缁欒妭鍚嶅姞涓奬0,琛ㄧず杩欎釜鑺傚悕缁撴潫 + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} +// 褰撲娇鐢ㄩ缂栬瘧鐨勫ご鏃讹紝闇瑕佷娇鐢ㄦ婧愭枃浠讹紝缂栬瘧鎵嶈兘鎴愬姛銆 diff --git a/add/UnitTest1/pch.h b/add/UnitTest1/pch.h new file mode 100644 index 0000000..90cc566 --- /dev/null +++ b/add/UnitTest1/pch.h @@ -0,0 +1,12 @@ +锘// pch.h: 杩欐槸棰勭紪璇戞爣澶存枃浠躲 +// 涓嬫柟鍒楀嚭鐨勬枃浠朵粎缂栬瘧涓娆★紝鎻愰珮浜嗗皢鏉ョ敓鎴愮殑鐢熸垚鎬ц兘銆 +// 杩欒繕灏嗗奖鍝 IntelliSense 鎬ц兘锛屽寘鎷唬鐮佸畬鎴愬拰璁稿浠g爜娴忚鍔熻兘銆 +// 浣嗘槸锛屽鏋滄澶勫垪鍑虹殑鏂囦欢涓殑浠讳綍涓涓湪鐢熸垚涔嬮棿鏈夋洿鏂帮紝瀹冧滑鍏ㄩ儴閮藉皢琚噸鏂扮紪璇戙 +// 璇峰嬁鍦ㄦ澶勬坊鍔犺棰戠箒鏇存柊鐨勬枃浠讹紝杩欏皢浣垮緱鎬ц兘浼樺娍鏃犳晥銆 + +#ifndef PCH_H +#define PCH_H +int CalcCount(int n, char(*str)[10]); +// 娣诲姞瑕佸湪姝ゅ棰勭紪璇戠殑鏍囧ご + +#endif //PCH_H diff --git a/add/add.sln b/add/add.sln new file mode 100644 index 0000000..42cc8b7 --- /dev/null +++ b/add/add.sln @@ -0,0 +1,41 @@ +锘 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "add", "add\add.vcxproj", "{B2461A9C-6D35-4906-BCE4-723B1E669C20}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{34F2D7FA-8879-401C-9F95-A57B90C33DC5}" +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 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Debug|x64.ActiveCfg = Debug|x64 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Debug|x64.Build.0 = Debug|x64 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Debug|x86.ActiveCfg = Debug|Win32 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Debug|x86.Build.0 = Debug|Win32 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Release|x64.ActiveCfg = Release|x64 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Release|x64.Build.0 = Release|x64 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Release|x86.ActiveCfg = Release|Win32 + {B2461A9C-6D35-4906-BCE4-723B1E669C20}.Release|x86.Build.0 = Release|Win32 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Debug|x64.ActiveCfg = Debug|x64 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Debug|x64.Build.0 = Debug|x64 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Debug|x86.ActiveCfg = Debug|Win32 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Debug|x86.Build.0 = Debug|Win32 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Release|x64.ActiveCfg = Release|x64 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Release|x64.Build.0 = Release|x64 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Release|x86.ActiveCfg = Release|Win32 + {34F2D7FA-8879-401C-9F95-A57B90C33DC5}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1938ABFD-AFB2-4663-807D-7FAF14CB344A} + EndGlobalSection +EndGlobal diff --git a/add/add/add.cpp b/add/add/add.cpp new file mode 100644 index 0000000..ff0665e --- /dev/null +++ b/add/add/add.cpp @@ -0,0 +1,5 @@ +#include "add.h" +long long add(int x, int y) +{ + return (long long)x + (long long)y;; +} diff --git a/add/add/add.h b/add/add/add.h new file mode 100644 index 0000000..9c057a4 --- /dev/null +++ b/add/add/add.h @@ -0,0 +1,4 @@ +#pragma once +#pragma once +#include +long long add(int x, int y); diff --git a/add/add/add.vcxproj b/add/add/add.vcxproj new file mode 100644 index 0000000..3d0181f --- /dev/null +++ b/add/add/add.vcxproj @@ -0,0 +1,150 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {b2461a9c-6d35-4906-bce4-723b1e669c20} + add + 10.0 + + + + StaticLibrary + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + 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 + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + \ No newline at end of file diff --git a/add/add/add.vcxproj.filters b/add/add/add.vcxproj.filters new file mode 100644 index 0000000..f8947b4 --- /dev/null +++ b/add/add/add.vcxproj.filters @@ -0,0 +1,27 @@ +锘 + + + + {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/add/add/add.vcxproj.user b/add/add/add.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/add/add/add.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/add/ex1.ini b/add/ex1.ini new file mode 100644 index 0000000..1000ccc --- /dev/null +++ b/add/ex1.ini @@ -0,0 +1,24 @@ +[TestMethod1] +na=12 +nb=4 +nExpect=16 +[TestMethod2] +na=3 +nb=7 +nExpect=10 +[TestMethod3] +na=2147483647 +nb=10 +nExpect=2147483657 +[TestMethod4] +na=2147483647 +nb=1000 +nExpect=2147484647 +[TestMethod5] +na=2147483647 +nb=10000 +nExpect=2147493647 + + + + diff --git a/add/readme.md b/add/readme.md new file mode 100644 index 0000000..bac2f3d --- /dev/null +++ b/add/readme.md @@ -0,0 +1,120 @@ +# add鍑芥暟璇存槑鏂囨。 +## 涓銆佸伐绋嬭鏄 +- 鏈伐绋嬬殑閰嶇疆绫诲瀷鏄竴涓潤鎬佸簱鏂囦欢锛岀洰鐨勬槸鐢熸垚涓涓彲琚叾浠栧伐绋嬭皟鐢ㄧ殑闈欐佸簱锛岄潤鎬佸簱鐨勫嚱鏁板姛鑳芥槸锛氳緭鍏ヤ袱涓猧nt绫诲瀷鐨勬暟锛岃繑鍥炰袱鏁颁箣鍜屻 +## 浜屻佸ご鏂囦欢 add.h 锛屾斁鐨勬槸add鍑芥暟鐨勫0鏄 +```C +#pragma once +#include +/* +**鍑芥暟鍚嶏細 add +**鍙傛暟锛歩nt 锛宨nt +**杩斿洖鍊硷細long long +**鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝瀵瑰叾杩涜鍔犳硶杩愮畻骞惰繑鍥炰竴涓 long long绫诲瀷鐨勬暟鍊硷紝鐩殑鏄槻姝袱涓猧nt绫诲瀷鐩稿姞鐨勫拰瓒呰繃int鐨勮寖鍥达紝鎵浠ヨ繖閲岃繑鍥炲间笉鐢╥nt銆 +*/ + long long add(int x, int y); +``` +## 涓夈佹簮鏂囦欢 add.cpp 锛屾斁鐨勬槸add鍑芥暟鐨勫畾涔 +```C +#include "add.h" +long long add(int x, int y) +{ + return (long long)x + (long long)y;//鍦ㄨ繍绠楀墠杩涜寮鸿浆 +} +``` +## 鍥涖佸崟鍏冩祴璇 +- 鎵嬪姩鍒涘缓ini鏂囦欢骞舵坊鍔犳祴璇曟牱渚嬶紝涔嬪悗鍦ㄥ崟鍏冩祴璇曠殑婧愭枃浠堕噷瀵筰ni鏂囦欢杩涜璇诲彇瑙f瀽 锛屽畬鎴愪互鍚庤幏鍙栧崟鍏冩祴璇曠殑缁撴灉锛屼繚璇佷唬鐮佽鐩栫巼鍦80%浠ヤ笂銆傚叾涓ini鏂囦欢鐨勮鍙栧彟灏佽浜嗗嚱鏁帮紝瑙佷笅闈㈢殑婧愮爜銆 +1. ini鏂囦欢鍐呭 exl.ini + ``` + [TestMethod1] #娴嬭瘯鏍蜂緥1 + na=12 #鍑芥暟绗竴涓叆鏁 + nb=4 #鍑芥暟绗簩涓叆鍙 + nExpect=16 #涓や釜鍏ュ弬鐩稿姞鐨勬纭粨鏋 + [TestMethod2] + na=3 + nb=7 + nExpect=10 + ``` + 2. 璇诲彇ini鏂囦欢鐨勫嚱鏁 int CalcCount(int n, char(*str)[10]) +```C +/* +**鍑芥暟鍔熻兘锛氳幏鍙栦竴涓猧ni鏂囦欢閲屾湁澶氬皯涓妭锛屽苟閫氳繃浜岀淮鎸囬拡鏁扮粍灏嗚妭鍚嶅甫鍑烘潵銆 +* 鍑芥暟鍚嶏細CalcCount锛堬級 +* 鍏ュ弬锛歩nt n --------鑺傜殑涓暟 +* char (*str)[10] --------浜岀淮鏁扮粍鎸囬拡锛10鏄妭鍚嶇殑闀垮害锛屽彲浠ユ牴鎹渶姹備慨鏀 +*杩斿洖鍊硷細int --------杩斿洖鑺傜殑涓暟 +*/ +int CalcCount(int n, char(*str)[10]) +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} +``` +3. 鍗曞厓娴嬭瘯婧愮爜 UNITest1.cpp +```C +#include "pch.h" +#include "CppUnitTest.h" +#include +#include +#include"../A/add.h" +#define FilePath "../ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + int j = 0;//寰幆鍙橀噺锛岀敤鏉ヨ闂甶ni鏂囦欢涓殑 鑺 + char str[50][10] = { 0 };//瀛樻斁ini鏂囦欢閲 鑺傜殑鍚嶅瓧 + int count = CalcCount(50, str);//淇濆瓨ini鏂囦欢閲 鑺傜殑涓暟 + TEST_METHOD(TestMethode1) + { + int nReal;//淇濆瓨杩愮畻缁撴灉 + CString na, nb, nExpect; //淇濆瓨娴嬭瘯鏍蜂緥涓殑閿 + for (j = 0; j < count; j++)//閬嶅巻璇诲彇娴嬭瘯鏍蜂緥 + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//璇诲彇绗竴涓弬鏁帮紝淇濆瓨鍦╪a閲 + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//璇诲彇绗簩涓弬鏁帮紝淇濆瓨鍦╪b閲 + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//璇诲彇姝g‘鐨勫硷紝淇濆瓨鍦╪Expect閲 + nReal = add(_ttoi(na), _ttoi(nb)); //_ttoi鏄疌String杞负鏁村瀷锛屾妸杩愮畻缁撴灉缁檔Real + Assert::AreEqual(nReal, _ttoi(nExpect));\\瀵规瘮杩愮畻缁撴灉鍜屾纭粨鏋 + } + + } + }; +} +``` \ No newline at end of file diff --git a/dev/.vs/dev/v16/.suo b/dev/.vs/dev/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..0a2b0e7bc059510c1bfa45fa4e213d9fb6bd2379 GIT binary patch literal 51712 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 literal 0 HcmV?d00001 diff --git a/dev/UnitTest1/UnitTest1.cpp b/dev/UnitTest1/UnitTest1.cpp new file mode 100644 index 0000000..d9be101 --- /dev/null +++ b/dev/UnitTest1/UnitTest1.cpp @@ -0,0 +1,86 @@ +#pragma once +#include "pch.h" +#include "CppUnitTest.h" +#include"../dev/dev.h" +#include +#include +#include + +#define FilePath "..//ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + +#if 1 + int j = 0; + char str[50][10] = { 0 };//保存ini文件里 节的名字 + int count = CalcCount(50, str);//保存ini文件里 节的个数 + unsigned short i; + TEST_METHOD(TestMethode1) + { + int nReal;//保存运算结果 + CString na, nb, nExpect; //b保存不同的键值 + for (j = 0; j < count; j++) + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); + nReal = dev(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型 + Assert::AreEqual(nReal, _ttoi(nExpect)); + } + + } + + }; +} + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/UnitTest1/UnitTest1.vcxproj b/dev/UnitTest1/UnitTest1.vcxproj new file mode 100644 index 0000000..74a5b86 --- /dev/null +++ b/dev/UnitTest1/UnitTest1.vcxproj @@ -0,0 +1,175 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {17E5808D-4540-4B67-898F-18D1CB5B82A0} + Win32Proj + UnitTest1 + 10.0 + NativeUnitTestProject + + + + DynamicLibrary + true + v142 + MultiByte + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + DynamicLibrary + true + v142 + Unicode + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + ..\dev\Debug\dev.obj;%(AdditionalDependencies) + DebugFull + + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + _DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Create + Create + Create + Create + + + + + + + + + + \ No newline at end of file diff --git a/dev/UnitTest1/UnitTest1.vcxproj.filters b/dev/UnitTest1/UnitTest1.vcxproj.filters new file mode 100644 index 0000000..83a287b --- /dev/null +++ b/dev/UnitTest1/UnitTest1.vcxproj.filters @@ -0,0 +1,30 @@ +锘 + + + + {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/dev/UnitTest1/UnitTest1.vcxproj.user b/dev/UnitTest1/UnitTest1.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/dev/UnitTest1/UnitTest1.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/dev/UnitTest1/pch.cpp b/dev/UnitTest1/pch.cpp new file mode 100644 index 0000000..96ad9c7 --- /dev/null +++ b/dev/UnitTest1/pch.cpp @@ -0,0 +1,44 @@ +锘// pch.cpp: 涓庨缂栬瘧鏍囧ご瀵瑰簲鐨勬簮鏂囦欢 +#pragma once +#include "pch.h" +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + //str[k][++m] = '\0';//鎵嬪姩缁欒妭鍚嶅姞涓奬0,琛ㄧず杩欎釜鑺傚悕缁撴潫 + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} + +// 褰撲娇鐢ㄩ缂栬瘧鐨勫ご鏃讹紝闇瑕佷娇鐢ㄦ婧愭枃浠讹紝缂栬瘧鎵嶈兘鎴愬姛銆 diff --git a/dev/UnitTest1/pch.h b/dev/UnitTest1/pch.h new file mode 100644 index 0000000..f455103 --- /dev/null +++ b/dev/UnitTest1/pch.h @@ -0,0 +1,14 @@ +锘// pch.h: 杩欐槸棰勭紪璇戞爣澶存枃浠躲 +// 涓嬫柟鍒楀嚭鐨勬枃浠朵粎缂栬瘧涓娆★紝鎻愰珮浜嗗皢鏉ョ敓鎴愮殑鐢熸垚鎬ц兘銆 +// 杩欒繕灏嗗奖鍝 IntelliSense 鎬ц兘锛屽寘鎷唬鐮佸畬鎴愬拰璁稿浠g爜娴忚鍔熻兘銆 +// 浣嗘槸锛屽鏋滄澶勫垪鍑虹殑鏂囦欢涓殑浠讳綍涓涓湪鐢熸垚涔嬮棿鏈夋洿鏂帮紝瀹冧滑鍏ㄩ儴閮藉皢琚噸鏂扮紪璇戙 +// 璇峰嬁鍦ㄦ澶勬坊鍔犺棰戠箒鏇存柊鐨勬枃浠讹紝杩欏皢浣垮緱鎬ц兘浼樺娍鏃犳晥銆 + +#ifndef PCH_H +#define PCH_H +#include + +#include +// 娣诲姞瑕佸湪姝ゅ棰勭紪璇戠殑鏍囧ご +int CalcCount(int n, char(*str)[10]); +#endif //PCH_H diff --git a/dev/dev.sln b/dev/dev.sln new file mode 100644 index 0000000..77a68cd --- /dev/null +++ b/dev/dev.sln @@ -0,0 +1,41 @@ +锘 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dev", "dev\dev.vcxproj", "{373F16B2-9E44-42AE-9CB5-F50C1D469625}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{17E5808D-4540-4B67-898F-18D1CB5B82A0}" +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 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Debug|x64.ActiveCfg = Debug|x64 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Debug|x64.Build.0 = Debug|x64 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Debug|x86.ActiveCfg = Debug|Win32 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Debug|x86.Build.0 = Debug|Win32 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Release|x64.ActiveCfg = Release|x64 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Release|x64.Build.0 = Release|x64 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Release|x86.ActiveCfg = Release|Win32 + {373F16B2-9E44-42AE-9CB5-F50C1D469625}.Release|x86.Build.0 = Release|Win32 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Debug|x64.ActiveCfg = Debug|x64 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Debug|x64.Build.0 = Debug|x64 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Debug|x86.ActiveCfg = Debug|Win32 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Debug|x86.Build.0 = Debug|Win32 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Release|x64.ActiveCfg = Release|x64 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Release|x64.Build.0 = Release|x64 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Release|x86.ActiveCfg = Release|Win32 + {17E5808D-4540-4B67-898F-18D1CB5B82A0}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A53B4729-E877-4464-9628-FC58CAE67389} + EndGlobalSection +EndGlobal diff --git a/dev/dev/Opera_api.cpp b/dev/dev/Opera_api.cpp new file mode 100644 index 0000000..c778d1b --- /dev/null +++ b/dev/dev/Opera_api.cpp @@ -0,0 +1,35 @@ +#pragma once +#include "Opera_api.h" +#include"../../add/add/add.h" +//封装的加法函数 +long long add_api(int x, int y) +{ + long long res = add(x, y); + printf("%d + %d = %lld\n", x, y, res); + return res; +} +//.封装的减法函数 +int sub_api(int x, int y) +{ + printf("%d - %d = %d\n", x, y, x - y); + return x - y; +} +//封装的乘法函数 +long long mul_api(int x, int y) +{ + long long res; + HMODULE hdll = LoadLibrary("../../mul/Debug/mul.dll"); + if (hdll != NULL) + { + MulFunc MUL1 = (MulFunc)GetProcAddress(hdll, (char*)(1)); + if (MUL1 != NULL) + { + res = MUL1(x, y); + return res; + } + FreeLibrary(hdll); + } +} + + + diff --git a/dev/dev/Opera_api.h b/dev/dev/Opera_api.h new file mode 100644 index 0000000..a296aa3 --- /dev/null +++ b/dev/dev/Opera_api.h @@ -0,0 +1,10 @@ +#pragma once +#include"./sub.h" +#include +#include +#pragma comment(lib,"./sub.lib") + +typedef int(WINAPI* MulFunc)(int x, int y); +long long mul_api(int x, int y); +int sub_api(int x, int y); +long long add_api(int x, int y); diff --git a/dev/dev/dev.cpp b/dev/dev/dev.cpp new file mode 100644 index 0000000..c939cd1 --- /dev/null +++ b/dev/dev/dev.cpp @@ -0,0 +1,15 @@ +#include "dev.h" +//封装的除法函数 +int dev(int x, int y) +{ + if (y == 0) + { + printf("除数不能为0!\n"); + return 0; + } + else + { + printf("%d / %d = %d\n", x, y, x / y); + return x / y; + } +} \ No newline at end of file diff --git a/dev/dev/dev.h b/dev/dev/dev.h new file mode 100644 index 0000000..8bbaaf1 --- /dev/null +++ b/dev/dev/dev.h @@ -0,0 +1,5 @@ +#pragma once +#include +#include + +int dev(int x, int y); \ No newline at end of file diff --git a/dev/dev/dev.vcxproj b/dev/dev/dev.vcxproj new file mode 100644 index 0000000..d09f2ea --- /dev/null +++ b/dev/dev/dev.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {373f16b2-9e44-42ae-9cb5-f50c1d469625} + dev + 10.0 + + + + Application + true + v142 + MultiByte + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + ..\..\add\add + + + Console + DebugFull + ..\..\add\Debug;%(AdditionalLibraryDirectories) + add.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dev/dev/dev.vcxproj.filters b/dev/dev/dev.vcxproj.filters new file mode 100644 index 0000000..d1ca5af --- /dev/null +++ b/dev/dev/dev.vcxproj.filters @@ -0,0 +1,36 @@ +锘 + + + + {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/dev/dev/dev.vcxproj.user b/dev/dev/dev.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/dev/dev/dev.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/dev/dev/main.cpp b/dev/dev/main.cpp new file mode 100644 index 0000000..2e6c127 --- /dev/null +++ b/dev/dev/main.cpp @@ -0,0 +1,13 @@ + +#include "Opera_api.h" +#include "dev.h" +int main() +{ + int a = 2147483647, b = 2; + add_api(a, b);//调用 加法接口add_api + sub_api(a, b);//调用 减法接口sub_api + mul_api(a, b); //调用 乘法接口mul_api + dev(a, b);//调用 除法接口dev_api + + return 0; +} \ No newline at end of file diff --git a/dev/dev/sub.dll b/dev/dev/sub.dll new file mode 100644 index 0000000000000000000000000000000000000000..0092c64218d4fd3209bea1c8b18165056ee78279 GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/dev/ex1.ini b/dev/ex1.ini new file mode 100644 index 0000000..7b9ddd4 --- /dev/null +++ b/dev/ex1.ini @@ -0,0 +1,21 @@ +[TestMethod1] +na=6 +nb=2 +nExpect=3 +[TestMethod2] +na=4 +nb=2 +nExpect=2 +[TestMethod3] +na=3 +nb=0 +nExpect=0 +[TestMethod4] +na=100 +nb=10 +nExpect=10 +[TestMethod5] +na=100 +nb=10 +nExpect=10 + diff --git a/dev/readme.md b/dev/readme.md new file mode 100644 index 0000000..2bd8b0c --- /dev/null +++ b/dev/readme.md @@ -0,0 +1,228 @@ +# dev鍑芥暟璇存槑鏂囨。 +## 涓銆佸伐绋嬭鏄 +- 鏈伐绋嬬殑閰嶇疆绫诲瀷鏄竴涓猠xe鍙墽琛屾枃浠讹紝宸ョ▼鍐呭瓨鍦ㄥ洓涓嚱鏁版帴鍙o紝鍒嗗埆涓哄姞銆佸噺銆佷箻銆侀櫎銆傚姞娉曞嚱鏁版帴鍙f槸璋冪敤add闈欐佸簱瀹炵幇锛涘噺娉曞嚱鏁版帴鍙f槸閲囩敤鍦ㄥ伐绋嬩腑閰嶇疆鍔犺浇sub鍔ㄦ佸簱鐨勬柟寮忓疄鐜帮紱涔樻硶鎺ュ彛浠ヨ繍琛屾椂鍔犺浇鍔ㄦ佸簱mul鐨勬柟寮忓疄鐜帮紱闄ゆ硶鎺ュ彛璋冪敤鏈韩鍑芥暟鐨勬柟寮忓疄鐜般 +## 浜屻佸伐绋嬫枃浠 +1. 闄ゆ硶鍑芥暟 + - 澶存枃浠 dev.h 锛屾斁鐨勬槸dev鐨勫0鏄 + ```C + #pragma once + #include + #include + /* + **鍑芥暟鍚嶏細 dev + **鍙傛暟锛歩nt 锛宨nt + **杩斿洖鍊硷細int + **鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝瀵瑰叾杩涜闄ゆ硶杩愮畻骞惰繑鍥炰袱鏁颁箣鍟嗐 + */ + int dev(int x, int y); + ``` + - 婧愭枃浠 dev.cpp 锛屾斁鐨勬槸dev鍑芥暟鐨勫畾涔 + ```C + #include "dev.h" + int dev(int x, int y) + { + if (y == 0) + { + printf("闄ゆ暟涓嶈兘涓0锛乗n"); + return 0; + } + else + { + printf("%d / %d = %d\n", x, y, x / y); + return x / y; + } + } + ``` +2. 鍔犮佸噺銆佷箻銆佹帴鍙 +- 澶存枃浠 Oper_api.h 锛屾斁鐨勬槸add_api,sub_api,mul_api鎺ュ彛澹版槑 + ```C + #pragma once + #include"sub.h" + #include + #include + #pragma comment(lib,"./B.lib") + typedef int(WINAPI* MulFunc)(int x, int y); + + /* + **鍑芥暟鍚嶏細 add_api + **鍙傛暟锛歩nt 锛宨nt + **杩斿洖鍊硷細long long + **鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝璋冪敤闈欐佸簱add鍑芥暟鐨勬柟寮忓疄鐜般 + */ + long long add_api(int x, int y); + + /* + **鍑芥暟鍚嶏細 sub_api + **鍙傛暟锛歩nt 锛宨nt + **杩斿洖鍊硷細int + **鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝璋冪敤鍔ㄦ佸簱sub鍑芥暟鐨勬柟寮忓疄鐜般 + */ + int sub_api(int x, int y); + + /* + **鍑芥暟鍚嶏細 mul_api + **鍙傛暟锛歩nt 锛宨nt + **杩斿洖鍊硷細long long + **鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝杩愯鏃跺姞杞藉姩鎬佸簱mul,瀹炵幇涔樻硶杩愮畻銆 + */ + void mul_api(int x, int y); + ``` +- 婧愭枃浠 Oper_api.cpp 锛屾斁鐨勬槸add_api,sub_api,mul_api鎺ュ彛瀹氫箟 + ```C + #pragma once + #include "Opera_api.h" + #include"add.h" + + //鍑芥暟鎺ュ彛add_api鐨勫疄鐜 + long long add_api(int x, int y) + { + long long res = add(x, y); + printf("%d + %d = %lld\n", x, y, res); + return res; + } + + //鍑芥暟鎺ュ彛sub_api鐨勫疄鐜 + int sub_api(int x, int y) + { + printf("%d - %d = %d\n", x, y, x - y); + return x - y; + } + + //鍑芥暟鎺ュ彛mul_api鐨勫疄鐜 + long long mul_api(int x, int y) + { + HMODULE hdll = LoadLibrary("../../C/Debug/C.dll"); + if (hdll != NULL) + { + MulFunc MUL1 = (MulFunc)GetProcAddress(hdll, (char*)(1)); + if (MUL1 != NULL) + { + printf("%d * %d = %lld\n", x, y, MUL1(x, y)); + return MUL1(x, y); + } + FreeLibrary(hdll); + } + } + ``` + 3. 璋冪敤鍑芥暟 main.c 锛屽鎺ュ彛杩涜璋冪敤 + ```C + #include "Opera_api.h" + #include "dev.h" + int main() + { + int a = 2147483647, b = 2; + add_api(a, b);//璋冪敤 鍔犳硶鎺ュ彛add_api + sub_api(a, b);//璋冪敤 鍑忔硶鎺ュ彛sub_api + mul_api(a, b); //璋冪敤 涔樻硶鎺ュ彛mul_api + dev(a, b);//璋冪敤 闄ゆ硶鎺ュ彛dev_api + + + return 0; + } + + ``` + 4. 杩愯缁撴灉濡備笅锛 + ![](./pic/main.jpg) + ## 涓夈佸崟鍏冩祴璇 + - 鎵嬪姩鍒涘缓ini鏂囦欢骞舵坊鍔犳祴璇曟牱渚嬶紝涔嬪悗鍦ㄥ崟鍏冩祴璇曠殑婧愭枃浠堕噷瀵筰ni鏂囦欢杩涜璇诲彇瑙f瀽 锛屽畬鎴愪互鍚庤幏鍙栧崟鍏冩祴璇曠殑缁撴灉锛屼繚璇佷唬鐮佽鐩栫巼鍦80%浠ヤ笂銆傚叾涓ini鏂囦欢鐨勮鍙栧彟灏佽浜嗗嚱鏁帮紝瑙佷笅闈㈢殑婧愮爜銆 +1. ini鏂囦欢鍐呭 exl.ini + ``` + [TestMethod1] #娴嬭瘯鏍蜂緥1 + na=10 #鍑芥暟绗竴涓叆鏁 + nb=2 #鍑芥暟绗簩涓叆鍙 + nExpect=5 #涓や釜鍏ュ弬鐩搁櫎鐨勬纭粨鏋 + [TestMethod2] + na=12 + nb=3 + nExpect=4 + [TestMethod3] + na=90 + nb=3 + nExpect=30 + ``` +2. 璇诲彇ini鏂囦欢鐨勫嚱鏁 int CalcCount(int n, char(*str)[10]) +```C +/* +**鍑芥暟鍔熻兘锛氳幏鍙栦竴涓猧ni鏂囦欢閲屾湁澶氬皯涓妭锛屽苟閫氳繃浜岀淮鎸囬拡鏁扮粍灏嗚妭鍚嶅甫鍑烘潵銆 +* 鍑芥暟鍚嶏細CalcCount锛堬級 +* 鍏ュ弬锛歩nt n --------鑺傜殑涓暟 +* char (*str)[10] --------浜岀淮鏁扮粍鎸囬拡锛10鏄妭鍚嶇殑闀垮害锛屽彲浠ユ牴鎹渶姹備慨鏀 +*杩斿洖鍊硷細int --------杩斿洖鑺傜殑涓暟 +*/ +int CalcCount(int n, char(*str)[10]) +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} +``` +3. 鍗曞厓娴嬭瘯婧愮爜 UNITest1.cpp +```C +#include "pch.h" +#include "CppUnitTest.h" +#include +#include +#include"../FourOperator/dev.h" +#define FilePath "../ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + int j = 0;//寰幆鍙橀噺锛岀敤鏉ヨ闂甶ni鏂囦欢涓殑 鑺 + char str[50][10] = { 0 };//瀛樻斁ini鏂囦欢閲 鑺傜殑鍚嶅瓧 + int count = CalcCount(50, str);//淇濆瓨ini鏂囦欢閲 鑺傜殑涓暟 + TEST_METHOD(TestMethode1) + { + int nReal;//淇濆瓨杩愮畻缁撴灉 + CString na, nb, nExpect; //淇濆瓨娴嬭瘯鏍蜂緥涓殑閿 + for (j = 0; j < count; j++)//閬嶅巻璇诲彇娴嬭瘯鏍蜂緥 + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//璇诲彇绗竴涓弬鏁帮紝淇濆瓨鍦╪a閲 + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//璇诲彇绗簩涓弬鏁帮紝淇濆瓨鍦╪b閲 + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//璇诲彇姝g‘鐨勫硷紝淇濆瓨鍦╪Expect閲 + nReal = dev(_ttoi(na), _ttoi(nb)); //_ttoi鏄疌String杞负鏁村瀷锛屾妸杩愮畻缁撴灉缁檔Real + Assert::AreEqual(nReal, _ttoi(nExpect));//瀵规瘮杩愮畻缁撴灉鍜屾纭粨鏋 + } + + } + }; +} +``` + + diff --git a/mul/.vs/mul/v16/.suo b/mul/.vs/mul/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..72f7efe9d153228915098b905e3150bd1e23fcfb GIT binary patch literal 37376 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 Q@_VeCJhM{Ufi|H0KiqaXXaE2J literal 0 HcmV?d00001 diff --git a/mul/UnitTest1/UnitTest1.cpp b/mul/UnitTest1/UnitTest1.cpp new file mode 100644 index 0000000..9eeae95 --- /dev/null +++ b/mul/UnitTest1/UnitTest1.cpp @@ -0,0 +1,36 @@ +#include "pch.h" +#include "CppUnitTest.h" +#include "../mul/mul.h" +#include +#include + +#define FilePath "..//ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + + int j = 0; + char str[50][10] = { 0 };//保存ini文件里 节的名字 + int count = CalcCount(50, str);//保存ini文件里 节的个数 + unsigned short i; + TEST_METHOD(TestMethode1) + { + long long nReal;//保存运算结果 + CString na, nb, nExpect; //b保存不同的键值 + for (j = 0; j < count; j++) + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); + nReal = mul(_ttoi64(na), _ttoi64(nb)); //_ttoi是CString转为整型 + Assert::AreEqual(nReal, _ttoi64(nExpect)); + } + + } + + }; +} diff --git a/mul/UnitTest1/UnitTest1.vcxproj b/mul/UnitTest1/UnitTest1.vcxproj new file mode 100644 index 0000000..b5d66a3 --- /dev/null +++ b/mul/UnitTest1/UnitTest1.vcxproj @@ -0,0 +1,175 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {9349997F-BBA9-466B-87AB-033AF11E021A} + Win32Proj + UnitTest1 + 10.0 + NativeUnitTestProject + + + + DynamicLibrary + true + v142 + MultiByte + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + DynamicLibrary + true + v142 + Unicode + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + ..\mul\Debug\mul.obj;%(AdditionalDependencies) + DebugFull + + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + _DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Create + Create + Create + Create + + + + + + + + + + \ No newline at end of file diff --git a/mul/UnitTest1/UnitTest1.vcxproj.filters b/mul/UnitTest1/UnitTest1.vcxproj.filters new file mode 100644 index 0000000..83a287b --- /dev/null +++ b/mul/UnitTest1/UnitTest1.vcxproj.filters @@ -0,0 +1,30 @@ +锘 + + + + {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/mul/UnitTest1/UnitTest1.vcxproj.user b/mul/UnitTest1/UnitTest1.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/mul/UnitTest1/UnitTest1.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/mul/UnitTest1/pch.cpp b/mul/UnitTest1/pch.cpp new file mode 100644 index 0000000..eb28fa4 --- /dev/null +++ b/mul/UnitTest1/pch.cpp @@ -0,0 +1,45 @@ +锘/// pch.cpp: 涓庨缂栬瘧鏍囧ご瀵瑰簲鐨勬簮鏂囦欢 +#include +#include "pch.h" +#include +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + //str[k][++m] = '\0';//鎵嬪姩缁欒妭鍚嶅姞涓奬0,琛ㄧず杩欎釜鑺傚悕缁撴潫 + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} + +// 褰撲娇鐢ㄩ缂栬瘧鐨勫ご鏃讹紝闇瑕佷娇鐢ㄦ婧愭枃浠讹紝缂栬瘧鎵嶈兘鎴愬姛銆 diff --git a/mul/UnitTest1/pch.h b/mul/UnitTest1/pch.h new file mode 100644 index 0000000..90cc566 --- /dev/null +++ b/mul/UnitTest1/pch.h @@ -0,0 +1,12 @@ +锘// pch.h: 杩欐槸棰勭紪璇戞爣澶存枃浠躲 +// 涓嬫柟鍒楀嚭鐨勬枃浠朵粎缂栬瘧涓娆★紝鎻愰珮浜嗗皢鏉ョ敓鎴愮殑鐢熸垚鎬ц兘銆 +// 杩欒繕灏嗗奖鍝 IntelliSense 鎬ц兘锛屽寘鎷唬鐮佸畬鎴愬拰璁稿浠g爜娴忚鍔熻兘銆 +// 浣嗘槸锛屽鏋滄澶勫垪鍑虹殑鏂囦欢涓殑浠讳綍涓涓湪鐢熸垚涔嬮棿鏈夋洿鏂帮紝瀹冧滑鍏ㄩ儴閮藉皢琚噸鏂扮紪璇戙 +// 璇峰嬁鍦ㄦ澶勬坊鍔犺棰戠箒鏇存柊鐨勬枃浠讹紝杩欏皢浣垮緱鎬ц兘浼樺娍鏃犳晥銆 + +#ifndef PCH_H +#define PCH_H +int CalcCount(int n, char(*str)[10]); +// 娣诲姞瑕佸湪姝ゅ棰勭紪璇戠殑鏍囧ご + +#endif //PCH_H diff --git a/mul/ex1.ini b/mul/ex1.ini new file mode 100644 index 0000000..01b2205 --- /dev/null +++ b/mul/ex1.ini @@ -0,0 +1,22 @@ +[TestMethod1] +na=4 +nb=4 +nExpect=16 +[TestMethod2] +na=3 +nb=7 +nExpect=21 +[TestMethod3] +na=3 +nb=5 +nExpect=15 +[TestMethod4] +na=2147483647 +nb=2 +nExpect=4294967294 +[TestMethod5] +na=2147483647 +nb=10 +nExpect=21474836470 + + diff --git a/mul/mul.sln b/mul/mul.sln new file mode 100644 index 0000000..de1862c --- /dev/null +++ b/mul/mul.sln @@ -0,0 +1,41 @@ +锘 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mul", "mul\mul.vcxproj", "{5F45D6E6-F22E-4144-AD99-F5A8F1C89852}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{9349997F-BBA9-466B-87AB-033AF11E021A}" +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 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Debug|x64.ActiveCfg = Debug|x64 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Debug|x64.Build.0 = Debug|x64 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Debug|x86.ActiveCfg = Debug|Win32 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Debug|x86.Build.0 = Debug|Win32 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Release|x64.ActiveCfg = Release|x64 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Release|x64.Build.0 = Release|x64 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Release|x86.ActiveCfg = Release|Win32 + {5F45D6E6-F22E-4144-AD99-F5A8F1C89852}.Release|x86.Build.0 = Release|Win32 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Debug|x64.ActiveCfg = Debug|x64 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Debug|x64.Build.0 = Debug|x64 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Debug|x86.ActiveCfg = Debug|Win32 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Debug|x86.Build.0 = Debug|Win32 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Release|x64.ActiveCfg = Release|x64 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Release|x64.Build.0 = Release|x64 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Release|x86.ActiveCfg = Release|Win32 + {9349997F-BBA9-466B-87AB-033AF11E021A}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {25E2EB02-6E3D-4816-9848-035C68239F09} + EndGlobalSection +EndGlobal diff --git a/mul/mul/Source.def b/mul/mul/Source.def new file mode 100644 index 0000000..3387fa3 --- /dev/null +++ b/mul/mul/Source.def @@ -0,0 +1,3 @@ +LIBRARY "Source" +EXPORTS +mul @1 diff --git a/mul/mul/mul.cpp b/mul/mul/mul.cpp new file mode 100644 index 0000000..8e0cfca --- /dev/null +++ b/mul/mul/mul.cpp @@ -0,0 +1,11 @@ + +#include "mul.h" +#include +long long _stdcall mul(int x, int y) +{ + long long m = (long long)x; + long long n = (long long)y; + long long s = m * n; + printf("%lld * %lld = %lld\n", m, n, s); + return s; +} \ No newline at end of file diff --git a/mul/mul/mul.h b/mul/mul/mul.h new file mode 100644 index 0000000..c7e3e4c --- /dev/null +++ b/mul/mul/mul.h @@ -0,0 +1,2 @@ +#pragma once +long long _stdcall mul(int x, int y); diff --git a/mul/mul/mul.vcxproj b/mul/mul/mul.vcxproj new file mode 100644 index 0000000..be00127 --- /dev/null +++ b/mul/mul/mul.vcxproj @@ -0,0 +1,157 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {5f45d6e6-f22e-4144-ad99-f5a8f1c89852} + mul + 10.0 + + + + DynamicLibrary + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + Source.def + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + Source.def + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + Source.def + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + Source.def + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mul/mul/mul.vcxproj.filters b/mul/mul/mul.vcxproj.filters new file mode 100644 index 0000000..0fe02ca --- /dev/null +++ b/mul/mul/mul.vcxproj.filters @@ -0,0 +1,32 @@ +锘 + + + + {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/mul/mul/mul.vcxproj.user b/mul/mul/mul.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/mul/mul/mul.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/mul/readme.md b/mul/readme.md new file mode 100644 index 0000000..d8db606 --- /dev/null +++ b/mul/readme.md @@ -0,0 +1,131 @@ +# mul鍑芥暟璇存槑鏂囨。 +## 涓銆佸伐绋嬭鏄 +- 鏈伐绋嬬殑閰嶇疆绫诲瀷鏄竴涓姩鎬佸簱鏂囦欢锛屼娇鐢ㄧ殑鏂规硶鏄敓鎴.def鏂囦欢锛岀洰鐨勬槸鐢熸垚涓涓彲琚叾浠栧伐绋嬭皟鐢ㄥ姩鎬佸簱锛屽姩鎬佸簱鐨勫嚱鏁板姛鑳芥槸锛氳緭鍏ヤ袱涓猧nt绫诲瀷鐨勬暟锛岃繑鍥炰袱鏁颁箣绉 +## 浜屻佸ご鏂囦欢 mul.h 锛屾斁鐨勬槸mul鍑芥暟鐨勫0鏄 +```C +/* +**鍑芥暟鍚嶏細 mul +**鍙傛暟锛歩nt 锛宨nt +**杩斿洖鍊硷細long long +**鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝瀵瑰叾杩涜涔樻硶杩愮畻骞惰繑鍥炰袱鏁颁箣绉紝鍥犱负涓や釜int鍨嬫暟鐩镐箻缁撴灉鍙兘浼氳秴鍑篿nt鑼冨洿锛屾墍浠ヨ繑鍥炲肩敤long long銆 +*/ +#pragma once +long long _stdcall mul(int x, int y);//杩欓噷鏆傛椂涓嶅お娓呮涓哄暐瑕佸姞_stdcall锛屼絾鏄笉鍔犺皟鐢ㄧ殑鏃跺欎細鎶涘紓甯# +``` +## 涓夈佹簮鏂囦欢 mul.cpp 锛屾斁鐨勬槸mul鍑芥暟鐨勫畾涔 +```C +#include "mul.h" +long long _stdcall mul(int x, int y) +{ + return (long long)x * (long long)y; +} +``` +## 鍥涖乨ef鏂囦欢鍐呭 Source.def + ``` + LIBRARY "Source" + EXPORTS + mul @1 + + ``` +## 浜斻佸崟鍏冩祴璇 +- 鎵嬪姩鍒涘缓ini鏂囦欢骞舵坊鍔犳祴璇曟牱渚嬶紝涔嬪悗鍦ㄥ崟鍏冩祴璇曠殑婧愭枃浠堕噷瀵筰ni鏂囦欢杩涜璇诲彇瑙f瀽 锛屽畬鎴愪互鍚庤幏鍙栧崟鍏冩祴璇曠殑缁撴灉锛屼繚璇佷唬鐮佽鐩栫巼鍦80%浠ヤ笂銆傚叾涓ini鏂囦欢鐨勮鍙栧彟灏佽浜嗗嚱鏁帮紝瑙佷笅闈㈢殑婧愮爜銆 +1. ini鏂囦欢鍐呭 exl.ini + ``` + [TestMethod1] #娴嬭瘯鏍蜂緥1 + na=10 #鍑芥暟绗竴涓叆鏁 + nb=4 #鍑芥暟绗簩涓叆鍙 + nExpect=40 #涓や釜鍏ュ弬鐩镐箻鐨勬纭粨鏋 + [TestMethod2] + na=3 + nb=7 + nExpect=21 + [TestMethod3] + na=3 + nb=5 + nExpect=15 + ``` +2. 璇诲彇ini鏂囦欢鐨勫嚱鏁 int CalcCount(int n, char(*str)[10]) +```C +/* +**鍑芥暟鍔熻兘锛氳幏鍙栦竴涓猧ni鏂囦欢閲屾湁澶氬皯涓妭锛屽苟閫氳繃浜岀淮鎸囬拡鏁扮粍灏嗚妭鍚嶅甫鍑烘潵銆 +* 鍑芥暟鍚嶏細CalcCount锛堬級 +* 鍏ュ弬锛歩nt n --------鑺傜殑涓暟 +* char (*str)[10] --------浜岀淮鏁扮粍鎸囬拡锛10鏄妭鍚嶇殑闀垮害锛屽彲浠ユ牴鎹渶姹備慨鏀 +*杩斿洖鍊硷細int --------杩斿洖鑺傜殑涓暟 +*/ +int CalcCount(int n, char(*str)[10]) +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} +``` +3. 鍗曞厓娴嬭瘯婧愮爜 UNITest1.cpp +```C +#include "pch.h" +#include "CppUnitTest.h" +#include +#include +#include "../C/mul.h" +#define FilePath "../ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + int j = 0;//寰幆鍙橀噺锛岀敤鏉ヨ闂甶ni鏂囦欢涓殑 鑺 + char str[50][10] = { 0 };//瀛樻斁ini鏂囦欢閲 鑺傜殑鍚嶅瓧 + int count = CalcCount(50, str);//淇濆瓨ini鏂囦欢閲 鑺傜殑涓暟 + TEST_METHOD(TestMethode1) + { + int nReal;//淇濆瓨杩愮畻缁撴灉 + CString na, nb, nExpect; //淇濆瓨娴嬭瘯鏍蜂緥涓殑閿 + for (j = 0; j < count; j++)//閬嶅巻璇诲彇娴嬭瘯鏍蜂緥 + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//璇诲彇绗竴涓弬鏁帮紝淇濆瓨鍦╪a閲 + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//璇诲彇绗簩涓弬鏁帮紝淇濆瓨鍦╪b閲 + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//璇诲彇姝g‘鐨勫硷紝淇濆瓨鍦╪Expect閲 + nReal = mul(_ttoi(na), _ttoi(nb)); //_ttoi鏄疌String杞负鏁村瀷锛屾妸杩愮畻缁撴灉缁檔Real + Assert::AreEqual(nReal, _ttoi(nExpect));//瀵规瘮杩愮畻缁撴灉鍜屾纭粨鏋 + } + + } + }; +} +``` + diff --git a/sub/.vs/sub/v16/.suo b/sub/.vs/sub/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..6df4bda80d38964811773c7568a85a51bb93e2ca GIT binary patch literal 43520 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%0A^mm$9{Pz30yn#?#r{CS#5^Qw`TEo5W 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 literal 0 HcmV?d00001 diff --git a/sub/UnitTest1/UnitTest1.cpp b/sub/UnitTest1/UnitTest1.cpp new file mode 100644 index 0000000..a6e1e18 --- /dev/null +++ b/sub/UnitTest1/UnitTest1.cpp @@ -0,0 +1,35 @@ +#include "pch.h" +#include "CppUnitTest.h" +#include +#include +#include "../sub/sub.h" +#define FilePath "..//ex1.ini" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + int j = 0; + char str[50][10] = { 0 };//保存ini文件里 节的名字 + int count = CalcCount(50, str);//保存ini文件里 节的个数 + unsigned short i; + + TEST_METHOD(TestMethode1) + { + long long nReal;//保存运算结果 + CString na, nb, nExpect; //b保存不同的键值 + for (j = 0; j < count; j++)//循环读取节,键值,并作对比。 + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath); + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath); + nReal = sub(_ttoi64(na), _ttoi64(nb)); //_ttoi是CString转为整型 + Assert::AreEqual(nReal, _ttoi64(nExpect)); + } + + } + }; +} diff --git a/sub/UnitTest1/UnitTest1.vcxproj b/sub/UnitTest1/UnitTest1.vcxproj new file mode 100644 index 0000000..30118c4 --- /dev/null +++ b/sub/UnitTest1/UnitTest1.vcxproj @@ -0,0 +1,175 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B} + Win32Proj + UnitTest1 + 10.0 + NativeUnitTestProject + + + + DynamicLibrary + true + v142 + MultiByte + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + DynamicLibrary + true + v142 + Unicode + false + + + DynamicLibrary + false + v142 + true + Unicode + false + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + ..\sub\Debug\sub.obj;%(AdditionalDependencies) + DebugFull + + + + + Use + Level3 + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + _DEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Use + Level3 + true + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + NDEBUG;%(PreprocessorDefinitions) + true + pch.h + + + Windows + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Create + Create + Create + Create + + + + + + + + + + \ No newline at end of file diff --git a/sub/UnitTest1/UnitTest1.vcxproj.filters b/sub/UnitTest1/UnitTest1.vcxproj.filters new file mode 100644 index 0000000..83a287b --- /dev/null +++ b/sub/UnitTest1/UnitTest1.vcxproj.filters @@ -0,0 +1,30 @@ +锘 + + + + {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/sub/UnitTest1/UnitTest1.vcxproj.user b/sub/UnitTest1/UnitTest1.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/sub/UnitTest1/UnitTest1.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file diff --git a/sub/UnitTest1/pch.cpp b/sub/UnitTest1/pch.cpp new file mode 100644 index 0000000..d2bdc54 --- /dev/null +++ b/sub/UnitTest1/pch.cpp @@ -0,0 +1,45 @@ +锘// pch.cpp: 涓庨缂栬瘧鏍囧ご瀵瑰簲鐨勬簮鏂囦欢 + +#include "pch.h" +#include +#include +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + //str[k][++m] = '\0';//鎵嬪姩缁欒妭鍚嶅姞涓奬0,琛ㄧず杩欎釜鑺傚悕缁撴潫 + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} +// 褰撲娇鐢ㄩ缂栬瘧鐨勫ご鏃讹紝闇瑕佷娇鐢ㄦ婧愭枃浠讹紝缂栬瘧鎵嶈兘鎴愬姛銆 diff --git a/sub/UnitTest1/pch.h b/sub/UnitTest1/pch.h new file mode 100644 index 0000000..90cc566 --- /dev/null +++ b/sub/UnitTest1/pch.h @@ -0,0 +1,12 @@ +锘// pch.h: 杩欐槸棰勭紪璇戞爣澶存枃浠躲 +// 涓嬫柟鍒楀嚭鐨勬枃浠朵粎缂栬瘧涓娆★紝鎻愰珮浜嗗皢鏉ョ敓鎴愮殑鐢熸垚鎬ц兘銆 +// 杩欒繕灏嗗奖鍝 IntelliSense 鎬ц兘锛屽寘鎷唬鐮佸畬鎴愬拰璁稿浠g爜娴忚鍔熻兘銆 +// 浣嗘槸锛屽鏋滄澶勫垪鍑虹殑鏂囦欢涓殑浠讳綍涓涓湪鐢熸垚涔嬮棿鏈夋洿鏂帮紝瀹冧滑鍏ㄩ儴閮藉皢琚噸鏂扮紪璇戙 +// 璇峰嬁鍦ㄦ澶勬坊鍔犺棰戠箒鏇存柊鐨勬枃浠讹紝杩欏皢浣垮緱鎬ц兘浼樺娍鏃犳晥銆 + +#ifndef PCH_H +#define PCH_H +int CalcCount(int n, char(*str)[10]); +// 娣诲姞瑕佸湪姝ゅ棰勭紪璇戠殑鏍囧ご + +#endif //PCH_H diff --git a/sub/ex1.ini b/sub/ex1.ini new file mode 100644 index 0000000..257cf31 --- /dev/null +++ b/sub/ex1.ini @@ -0,0 +1,22 @@ +[TestMethod1] +na=12 +nb=4 +nExpect=8 +[TestMethod2] +na=7 +nb=3 +nExpect=4 +[TestMethod3] +na=-1 +nb=2147483647 +nExpect=-2147483648 +[TestMethod4] +na=-2 +nb=2147483647 +nExpect=-2147483649 +[TestMethod5] +na=-1000 +nb=2147483647 +nExpect=-2147484647 + + diff --git a/sub/readme.md b/sub/readme.md new file mode 100644 index 0000000..184ccac --- /dev/null +++ b/sub/readme.md @@ -0,0 +1,127 @@ +# sub鍑芥暟璇存槑鏂囨。 +## 涓銆佸伐绋嬭鏄 +- 鏈伐绋嬬殑閰嶇疆绫诲瀷鏄竴涓姩鎬佸簱鏂囦欢锛岀洰鐨勬槸鐢熸垚涓涓彲琚叾浠栧伐绋嬭皟鐢ㄥ姩鎬佸簱锛屽姩鎬佸簱鐨勫嚱鏁板姛鑳芥槸锛氳緭鍏ヤ袱涓猧nt绫诲瀷鐨勬暟锛岃繑鍥炰袱鏁颁箣宸 +## 浜屻佸ご鏂囦欢 sub.h 锛屾斁鐨勬槸sub鍑芥暟澹版槑 +```C +#ifndef _SUB_H_ +#define _SUB_H_ +#ifdef sub_EXPORTS +#define sub_EXPORTS _declspec(dllexport) +#else +#define sub_EXPORTS _declspec(dllimport) +#endif +/* +**鍑芥暟鍚嶏細 sub +**鍙傛暟锛歩nt 锛宨nt +**杩斿洖鍊硷細int +**鍑芥暟鍔熻兘锛氫紶鍏ヤ袱涓猧nt绫诲瀷鐨勫弬鏁帮紝瀵瑰叾杩涜鍑忔硶杩愮畻骞惰繑鍥炲樊鍊笺 +*/ +sub_EXPORTS int sub(int x, int y); + +#endif +``` +## 涓夈佹簮鏂囦欢 sub.cpp 锛屾斁鐨勬槸sub鍑芥暟鐨勫彟涓 +```C +#include"sub.h" +int sub(int x, int y) +{ + return x - y; +} +``` +## 鍥涖佸崟鍏冩祴璇 +- 鎵嬪姩鍒涘缓ini鏂囦欢骞舵坊鍔犳祴璇曟牱渚嬶紝涔嬪悗鍦ㄥ崟鍏冩祴璇曠殑婧愭枃浠堕噷瀵筰ni鏂囦欢杩涜璇诲彇瑙f瀽 锛屽畬鎴愪互鍚庤幏鍙栧崟鍏冩祴璇曠殑缁撴灉锛屼繚璇佷唬鐮佽鐩栫巼鍦80%浠ヤ笂銆傚叾涓ini鏂囦欢鐨勮鍙栧彟灏佽浜嗗嚱鏁帮紝瑙佷笅闈㈢殑婧愮爜銆 +1. ini鏂囦欢鍐呭 exl.ini + ``` + [TestMethod1] #娴嬭瘯鏍蜂緥1 + na=10 #鍑芥暟绗竴涓叆鏁 + nb=4 #鍑芥暟绗簩涓叆鍙 + nExpect=6 #涓や釜鍏ュ弬鐩稿噺鐨勬纭粨鏋 + [TestMethod2] + na=7 + nb=3 + nExpect=4 + ``` + 2. 璇诲彇ini鏂囦欢鐨勫嚱鏁 int CalcCount(int n, char(*str)[10]) +```C +/* +**鍑芥暟鍔熻兘锛氳幏鍙栦竴涓猧ni鏂囦欢閲屾湁澶氬皯涓妭锛屽苟閫氳繃浜岀淮鎸囬拡鏁扮粍灏嗚妭鍚嶅甫鍑烘潵銆 +* 鍑芥暟鍚嶏細CalcCount锛堬級 +* 鍏ュ弬锛歩nt n --------鑺傜殑涓暟 +* char (*str)[10] --------浜岀淮鏁扮粍鎸囬拡锛10鏄妭鍚嶇殑闀垮害锛屽彲浠ユ牴鎹渶姹備慨鏀 +*杩斿洖鍊硷細int --------杩斿洖鑺傜殑涓暟 +*/ +int CalcCount(int n, char(*str)[10]) +int CalcCount(int n, char(*str)[10]) +{ + TCHAR chSectionNames[2048] = { 0 };//瀹氫箟涓涓暟缁勶紝淇濆瓨璇诲彇鑺傜殑鍚嶅瓧 + char* pSectionName; //淇濆瓨鎵惧埌鐨勬煇涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃 + int i = 0; //i鎸囧悜鏁扮粍chSectionNames鐨勬煇涓綅缃紝浠0寮濮嬶紝椤哄簭鍚庣Щ + int j = 0; //j鐢ㄦ潵淇濆瓨涓嬩竴涓妭鍚嶅瓧绗︿覆鐨勯鍦板潃鐩稿浜庡綋鍓峣鐨勪綅缃亸绉婚噺 + int k = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int m = 0; //涓存椂鍙橀噺锛岀敤浜庣粰str鏁扮粍璧嬪 + int count = 0; //缁熻鑺傜殑涓暟 + GetPrivateProfileSectionNames(chSectionNames, 2048, "..//ex1.ini");//鑾峰彇鏂囦欢涓殑鑺傚悕锛屾瘡涓妭鍚嶄互"\0"鍒嗗壊锛屼繚瀛樺湪chSectionNames涓 + //瑕佸姞澶存枃浠 + for (i = 0; i < 2048; i++, j++)//瀵筩hSectionName涓繚瀛樼殑鍐呭杩涜鎷嗗垎 + { + if (chSectionNames[0] == '\0')//濡傛灉绗竴涓瓧绗﹀氨鏄0锛屽垯璇存槑ini涓竴涓妭涔熸病鏈夛紝 + { + break; + } + if (chSectionNames[i] == '\0') + { + count++; + pSectionName = &chSectionNames[i - j]; //鎵惧埌涓涓0锛屽垯璇存槑浠庤繖涓瓧绗﹀線鍓嶏紝鍑忔帀j涓亸绉婚噺锛 + //灏辨槸涓涓妭鍚嶇殑棣栧湴鍧 + j = -1; //鎵惧埌涓涓妭鍚嶅悗锛宩鐨勫艰杩樺師锛屼互缁熻涓嬩竴涓妭鍚嶅湴鍧鐨勫亸绉婚噺 + //璧嬫垚-1鏄洜涓鸿妭鍚嶅瓧绗︿覆鐨勬渶鍚庝竴涓瓧绗0鏄粓姝㈢锛屼笉鑳戒綔涓鸿妭鍚 + for (m = 0; m <= strlen(pSectionName); m++)//鎶婃壘鍒扮殑鑺傚悕淇濆瓨鍒皊tr涓 + { + str[k][m] = *(pSectionName + m); + } + k++;//鍙橀噺鑷姞锛岀敤鏉ヤ繚瀛樹笅涓涓妭鍚 + //鍦ㄨ幏鍙栬妭鍚嶇殑鏃跺欏彲浠ヨ幏鍙栬鑺備腑閿殑鍊硷紝鍓嶆彁鏄垜浠煡閬撹鑺備腑鏈夊摢浜涢敭銆 + if (chSectionNames[i + 1] == 0) + { + break; //褰撲袱涓浉閭荤殑瀛楃閮芥槸0鏃讹紝鍒欐墍鏈夌殑鑺傚悕閮藉凡鎵惧埌锛屽惊鐜粓姝 + } + } + } + return count;//杩斿洖鑺傚悕鐨勪釜鏁 +} +``` +3. 鍗曞厓娴嬭瘯婧愮爜 UNITest1.cpp +```C +#include "pch.h" +#include "CppUnitTest.h" +#include +#include +#include "../B/sub.h" +#define FilePath "../ex1.ini" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest1 +{ + TEST_CLASS(UnitTest1) + { + public: + int j = 0;//寰幆鍙橀噺锛岀敤鏉ヨ闂甶ni鏂囦欢涓殑 鑺 + char str[50][10] = { 0 };//瀛樻斁ini鏂囦欢閲 鑺傜殑鍚嶅瓧 + int count = CalcCount(50, str);//淇濆瓨ini鏂囦欢閲 鑺傜殑涓暟 + TEST_METHOD(TestMethode1) + { + long long nReal;//淇濆瓨杩愮畻缁撴灉 + CString na, nb, nExpect; //淇濆瓨娴嬭瘯鏍蜂緥涓殑閿 + for (j = 0; j < count; j++)//閬嶅巻璇诲彇娴嬭瘯鏍蜂緥 + { + GetPrivateProfileString(str[j], "na", " ", na.GetBuffer(20), 20, FilePath);//璇诲彇绗竴涓弬鏁帮紝淇濆瓨鍦╪a閲 + GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//璇诲彇绗簩涓弬鏁帮紝淇濆瓨鍦╪b閲 + GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//璇诲彇姝g‘鐨勫硷紝淇濆瓨鍦╪Expect閲 + nReal = sub(_ttoi64(na), _tto64(nb)); //_ttoi鏄疌String杞负鏁村瀷锛屾妸杩愮畻缁撴灉缁檔Real + Assert::AreEqual(nReal, _ttoi64(nExpect));//瀵规瘮杩愮畻缁撴灉鍜屾纭粨鏋 + } + + } + }; +} +``` diff --git a/sub/sub.sln b/sub/sub.sln new file mode 100644 index 0000000..87587cc --- /dev/null +++ b/sub/sub.sln @@ -0,0 +1,41 @@ +锘 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sub", "sub\sub.vcxproj", "{1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{41EA5A08-F53D-45F8-B927-8B35B73BE84B}" +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 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Debug|x64.ActiveCfg = Debug|x64 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Debug|x64.Build.0 = Debug|x64 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Debug|x86.ActiveCfg = Debug|Win32 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Debug|x86.Build.0 = Debug|Win32 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Release|x64.ActiveCfg = Release|x64 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Release|x64.Build.0 = Release|x64 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Release|x86.ActiveCfg = Release|Win32 + {1C0469B3-B257-478F-8CCE-E00E9A8ED7B0}.Release|x86.Build.0 = Release|Win32 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Debug|x64.ActiveCfg = Debug|x64 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Debug|x64.Build.0 = Debug|x64 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Debug|x86.ActiveCfg = Debug|Win32 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Debug|x86.Build.0 = Debug|Win32 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Release|x64.ActiveCfg = Release|x64 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Release|x64.Build.0 = Release|x64 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Release|x86.ActiveCfg = Release|Win32 + {41EA5A08-F53D-45F8-B927-8B35B73BE84B}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1E62416C-4140-4806-91B8-6FDC6ECE9356} + EndGlobalSection +EndGlobal diff --git a/sub/sub/sub.cpp b/sub/sub/sub.cpp new file mode 100644 index 0000000..b68c3e1 --- /dev/null +++ b/sub/sub/sub.cpp @@ -0,0 +1,5 @@ +#include"sub.h" + long long sub(int x, int y) +{ + return (long long)x -(long long) y; +} \ No newline at end of file diff --git a/sub/sub/sub.h b/sub/sub/sub.h new file mode 100644 index 0000000..993f557 --- /dev/null +++ b/sub/sub/sub.h @@ -0,0 +1,12 @@ +#ifndef _SUB_H_ +#define _SUB_H_ + +#ifdef DLL_EXPORTS +#define SUB_API _declspec(dllexport) +#else +#define SUB_API _declspec(dllimport) +#endif + +SUB_API long long sub(int x, int y); +#endif + diff --git a/sub/sub/sub.vcxproj b/sub/sub/sub.vcxproj new file mode 100644 index 0000000..467a95c --- /dev/null +++ b/sub/sub/sub.vcxproj @@ -0,0 +1,150 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {1c0469b3-b257-478f-8cce-e00e9a8ed7b0} + sub + 10.0 + + + + DynamicLibrary + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + 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 + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + \ No newline at end of file diff --git a/sub/sub/sub.vcxproj.filters b/sub/sub/sub.vcxproj.filters new file mode 100644 index 0000000..755deeb --- /dev/null +++ b/sub/sub/sub.vcxproj.filters @@ -0,0 +1,27 @@ +锘 + + + + {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/sub/sub/sub.vcxproj.user b/sub/sub/sub.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/sub/sub/sub.vcxproj.user @@ -0,0 +1,4 @@ +锘 + + + \ No newline at end of file