diff --git a/add/A/.vs/A/v16/.suo b/add/A/.vs/A/v16/.suo
deleted file mode 100644
index a0b874f..0000000
Binary files a/add/A/.vs/A/v16/.suo and /dev/null differ
diff --git a/add/A/A.sln b/add/A/A.sln
deleted file mode 100644
index 9df3311..0000000
--- a/add/A/A.sln
+++ /dev/null
@@ -1,41 +0,0 @@
-
-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}") = "A", "A\A.vcxproj", "{53093C19-B40F-47A8-9392-A223E414830E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{F2E902DE-0C36-42A7-BF5D-2325F9D270C8}"
-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
- {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x64.ActiveCfg = Debug|x64
- {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x64.Build.0 = Debug|x64
- {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x86.ActiveCfg = Debug|Win32
- {53093C19-B40F-47A8-9392-A223E414830E}.Debug|x86.Build.0 = Debug|Win32
- {53093C19-B40F-47A8-9392-A223E414830E}.Release|x64.ActiveCfg = Release|x64
- {53093C19-B40F-47A8-9392-A223E414830E}.Release|x64.Build.0 = Release|x64
- {53093C19-B40F-47A8-9392-A223E414830E}.Release|x86.ActiveCfg = Release|Win32
- {53093C19-B40F-47A8-9392-A223E414830E}.Release|x86.Build.0 = Release|Win32
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x64.ActiveCfg = Debug|x64
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x64.Build.0 = Debug|x64
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x86.ActiveCfg = Debug|Win32
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Debug|x86.Build.0 = Debug|Win32
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x64.ActiveCfg = Release|x64
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x64.Build.0 = Release|x64
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x86.ActiveCfg = Release|Win32
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {B7DA30AA-170D-4E63-A28E-AD3D6C3C05C2}
- EndGlobalSection
-EndGlobal
diff --git a/add/A/A/A.vcxproj b/add/A/A/A.vcxproj
deleted file mode 100644
index 4ed6f6b..0000000
--- a/add/A/A/A.vcxproj
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- Win32Proj
- {53093c19-b40f-47a8-9392-a223e414830e}
- A
- 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/A/A/A.vcxproj.filters b/add/A/A/A.vcxproj.filters
deleted file mode 100644
index f8947b4..0000000
--- a/add/A/A/A.vcxproj.filters
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- {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/A/A/A.vcxproj.user b/add/A/A/A.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/add/A/A/A.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/add/A/A/add.cpp b/add/A/A/add.cpp
deleted file mode 100644
index 225ad69..0000000
--- a/add/A/A/add.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "add.h"
-long long add(int x, int y)
-{
- return (long long)x + (long long)y;
-}
diff --git a/add/A/A/add.h b/add/A/A/add.h
deleted file mode 100644
index 4a005b2..0000000
--- a/add/A/A/add.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-#include
- long long add(int x, int y);
\ No newline at end of file
diff --git a/add/A/UnitTest1/UnitTest1.cpp b/add/A/UnitTest1/UnitTest1.cpp
deleted file mode 100644
index c779508..0000000
--- a/add/A/UnitTest1/UnitTest1.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#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;
- 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 = add(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
-
- }
- };
-}
diff --git a/add/A/UnitTest1/UnitTest1.vcxproj b/add/A/UnitTest1/UnitTest1.vcxproj
deleted file mode 100644
index a2408b7..0000000
--- a/add/A/UnitTest1/UnitTest1.vcxproj
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- {F2E902DE-0C36-42A7-BF5D-2325F9D270C8}
- 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)
- ..\A\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
-
-
-
-
-
-
-
-
- {53093c19-b40f-47a8-9392-a223e414830e}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/add/A/UnitTest1/UnitTest1.vcxproj.filters b/add/A/UnitTest1/UnitTest1.vcxproj.filters
deleted file mode 100644
index 83a287b..0000000
--- a/add/A/UnitTest1/UnitTest1.vcxproj.filters
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- {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/A/UnitTest1/UnitTest1.vcxproj.user b/add/A/UnitTest1/UnitTest1.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/add/A/UnitTest1/UnitTest1.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/add/A/UnitTest1/pch.cpp b/add/A/UnitTest1/pch.cpp
deleted file mode 100644
index d2bdc54..0000000
--- a/add/A/UnitTest1/pch.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-// 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- str[k][m] = *(pSectionName + m);
- }
- //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束
- k++;//变量自加,用来保存下一个节名
- //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。
- if (chSectionNames[i + 1] == 0)
- {
- break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止
- }
- }
- }
- return count;//返回节名的个数
-}
-// 当使用预编译的头时,需要使用此源文件,编译才能成功。
diff --git a/add/A/UnitTest1/pch.h b/add/A/UnitTest1/pch.h
deleted file mode 100644
index 90cc566..0000000
--- a/add/A/UnitTest1/pch.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// pch.h: 这是预编译标头文件。
-// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
-// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
-// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
-// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
-
-#ifndef PCH_H
-#define PCH_H
-int CalcCount(int n, char(*str)[10]);
-// 添加要在此处预编译的标头
-
-#endif //PCH_H
diff --git a/add/A/ex1.ini b/add/A/ex1.ini
deleted file mode 100644
index b4d33b5..0000000
--- a/add/A/ex1.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[TestMethod1]
-na=12
-nb=4
-nExpect=16
-[TestMethod2]
-na=3
-nb=7
-nExpect=10
-
diff --git a/add/add函数及其单元测试说明.md b/add/add函数及其单元测试说明.md
deleted file mode 100644
index aeccd63..0000000
--- a/add/add函数及其单元测试说明.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# add函数说明文档
-## 一、工程说明
-- 本工程的配置类型是一个静态库文件,目的是生成一个可被其他工程调用的静态库,静态库的函数功能是:输入两个int类型的数,返回两数之和。
-## 二、头文件 add.h ,放的是add函数的声明
-```C
-#pragma once
-#include
-/*
-**函数名: add
-**参数:int ,int
-**返回值:long long
-**函数功能:传入两个int类型的参数,对其进行加法运算并返回一个 long long类型的数值,目的是防止两个int类型相加的和超过int的范围,所以这里返回值不用int。
-*/
- 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文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在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
-/*
-**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。
-* 函数名:CalcCount()
-* 入参:int 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- 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;//循环变量,用来访问ini文件中的 节
- 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);//读取第一个参数,保存在na里
- GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里
- GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里
- nReal = add(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal
- Assert::AreEqual(nReal, _ttoi(nExpect));\\对比运算结果和正确结果
- }
-
- }
- };
-}
-```
-4. 附加测试结果
-
diff --git a/add/pic/add.jpg b/add/pic/add.jpg
deleted file mode 100644
index 29c9f87..0000000
Binary files a/add/pic/add.jpg and /dev/null differ
diff --git a/div/FourOperator/.vs/FourOperator/v16/.suo b/div/FourOperator/.vs/FourOperator/v16/.suo
deleted file mode 100644
index cbb3f55..0000000
Binary files a/div/FourOperator/.vs/FourOperator/v16/.suo and /dev/null differ
diff --git a/div/FourOperator/FourOperator.sln b/div/FourOperator/FourOperator.sln
deleted file mode 100644
index cab817b..0000000
--- a/div/FourOperator/FourOperator.sln
+++ /dev/null
@@ -1,41 +0,0 @@
-
-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}") = "FourOperator", "FourOperator\FourOperator.vcxproj", "{84D3E0B3-C22A-4F07-9329-8220A2F2EABD}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{B68018EC-3312-470A-898A-89F46F36C582}"
-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
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x64.ActiveCfg = Debug|x64
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x64.Build.0 = Debug|x64
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x86.ActiveCfg = Debug|Win32
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Debug|x86.Build.0 = Debug|Win32
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x64.ActiveCfg = Release|x64
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x64.Build.0 = Release|x64
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x86.ActiveCfg = Release|Win32
- {84D3E0B3-C22A-4F07-9329-8220A2F2EABD}.Release|x86.Build.0 = Release|Win32
- {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x64.ActiveCfg = Debug|x64
- {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x64.Build.0 = Debug|x64
- {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x86.ActiveCfg = Debug|Win32
- {B68018EC-3312-470A-898A-89F46F36C582}.Debug|x86.Build.0 = Debug|Win32
- {B68018EC-3312-470A-898A-89F46F36C582}.Release|x64.ActiveCfg = Release|x64
- {B68018EC-3312-470A-898A-89F46F36C582}.Release|x64.Build.0 = Release|x64
- {B68018EC-3312-470A-898A-89F46F36C582}.Release|x86.ActiveCfg = Release|Win32
- {B68018EC-3312-470A-898A-89F46F36C582}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D74B31F8-B3E0-4D9E-8BFC-F0959A7F9337}
- EndGlobalSection
-EndGlobal
diff --git a/div/FourOperator/FourOperator/B.dll b/div/FourOperator/FourOperator/B.dll
deleted file mode 100644
index 53f1a40..0000000
Binary files a/div/FourOperator/FourOperator/B.dll and /dev/null differ
diff --git a/div/FourOperator/FourOperator/B.lib b/div/FourOperator/FourOperator/B.lib
deleted file mode 100644
index ead5fd4..0000000
Binary files a/div/FourOperator/FourOperator/B.lib and /dev/null differ
diff --git a/div/FourOperator/FourOperator/FourOperator.vcxproj b/div/FourOperator/FourOperator/FourOperator.vcxproj
deleted file mode 100644
index 4eba2a2..0000000
--- a/div/FourOperator/FourOperator/FourOperator.vcxproj
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- Win32Proj
- {84d3e0b3-c22a-4f07-9329-8220a2f2eabd}
- FourOperator
- 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\A\A;%(AdditionalIncludeDirectories)
-
-
- Console
- true
- ..\..\..\add\A\Debug
- A.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/div/FourOperator/FourOperator/FourOperator.vcxproj.filters b/div/FourOperator/FourOperator/FourOperator.vcxproj.filters
deleted file mode 100644
index a283846..0000000
--- a/div/FourOperator/FourOperator/FourOperator.vcxproj.filters
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
- {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/div/FourOperator/FourOperator/FourOperator.vcxproj.user b/div/FourOperator/FourOperator/FourOperator.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/div/FourOperator/FourOperator/FourOperator.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/div/FourOperator/FourOperator/Opera_api.cpp b/div/FourOperator/FourOperator/Opera_api.cpp
deleted file mode 100644
index d0dce44..0000000
--- a/div/FourOperator/FourOperator/Opera_api.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-#include "Opera_api.h"
-#include"../../../add/A/A/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;
-}
-//װij˷
-long long mul_api(int x, int y)
-{
- long long res;
- HMODULE hdll = LoadLibrary("../../../mul/C/Debug/C.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/div/FourOperator/FourOperator/Opera_api.h b/div/FourOperator/FourOperator/Opera_api.h
deleted file mode 100644
index 1ee6a20..0000000
--- a/div/FourOperator/FourOperator/Opera_api.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-#include"sub.h"
-#include
-#include
-#pragma comment(lib,"./B.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/div/FourOperator/FourOperator/dev.cpp b/div/FourOperator/FourOperator/dev.cpp
deleted file mode 100644
index c939cd1..0000000
--- a/div/FourOperator/FourOperator/dev.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "dev.h"
-//װij
-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/div/FourOperator/FourOperator/dev.h b/div/FourOperator/FourOperator/dev.h
deleted file mode 100644
index 0041e13..0000000
--- a/div/FourOperator/FourOperator/dev.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-#pragma once
-#include"sub.h"
-#include
-#include
-
-int dev(int x, int y);
\ No newline at end of file
diff --git a/div/FourOperator/FourOperator/main.cpp b/div/FourOperator/FourOperator/main.cpp
deleted file mode 100644
index 6660ca1..0000000
--- a/div/FourOperator/FourOperator/main.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-
-#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/div/FourOperator/FourOperator/sub.h b/div/FourOperator/FourOperator/sub.h
deleted file mode 100644
index 67e32fb..0000000
--- a/div/FourOperator/FourOperator/sub.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _SUB_H_
-#define _SUB_H_
-
-#ifdef sub_EXPORTS
-#define sub_EXPORTS _declspec(dllexport)
-#else
-#define sub_EXPORTS _declspec(dllimport)
-#endif
-
-sub_EXPORTS int sub(int x, int y);
-
-#endif
-
diff --git a/div/FourOperator/UnitTest1/UnitTest1.cpp b/div/FourOperator/UnitTest1/UnitTest1.cpp
deleted file mode 100644
index 3f7221a..0000000
--- a/div/FourOperator/UnitTest1/UnitTest1.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-#pragma once
-#include "pch.h"
-#include "CppUnitTest.h"
-#include"../FourOperator/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)); //_ttoiCStringתΪ
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
-
- }
-
- };
-}
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#if 0
- TEST_METHOD(a)
- {
- int nReal;
- CString na, nb, nExpect;
- //һγ ex1.ini ļд
- //WritePrivateProfileString(_T("a"), _T("na"), _T("6"), _T("../ex1.ini"));
- //WritePrivateProfileString(_T("a"), _T("nb"), _T("2"), _T("../ex1.ini"));
- //WritePrivateProfileString(_T("a"), _T("QExpect"), _T("3"), _T("../ex1.ini"));
- //һγǴ ex1.ini ļȡ
- GetPrivateProfileString(_T("a"), _T("na"), _T(" "), na.GetBuffer(20), 20, _T(FilePath));
- GetPrivateProfileString(_T("a"), _T("nb"), _T(" "), nb.GetBuffer(20), 20, _T(FilePath));
- GetPrivateProfileString(_T("a"), _T("nExpect"), _T(" "), nExpect.GetBuffer(20), 20, _T(FilePath));
- nReal = dev(_ttoi(na), _ttoi(nb));
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
- TEST_METHOD(b)
- {
- int nReal;
- CString na, nb, nExpect;
-
- GetPrivateProfileString(_T("b"), _T("na"), _T(" "), na.GetBuffer(20), 20, _T(FilePath));
- GetPrivateProfileString(_T("b"), _T("nb"), _T(" "), nb.GetBuffer(20), 20, _T(FilePath));
- GetPrivateProfileString(_T("b"), _T("nExpect"), _T(" "), nExpect.GetBuffer(20), 20, _T(FilePath));
- nReal = dev(_ttoi(na), _ttoi(nb));
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
- TEST_METHOD(c)
- {
- int nReal;
- CString na, nb, nExpect;
-
- GetPrivateProfileString(_T("c"), _T("na"), _T(" "), na.GetBuffer(20), 20, _T(FilePath));
- GetPrivateProfileString(_T("c"), _T("nb"), _T(" "), nb.GetBuffer(20), 20, _T(FilePath));
- GetPrivateProfileString(_T("c"), _T("nExpect"), _T(" "), nExpect.GetBuffer(20), 20, _T(FilePath));
- nReal = dev(_ttoi(na), _ttoi(nb));
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
- TEST_METHOD(TestMethod3)
- {
- int nReal;
- CString na, nb, nExpect;
-
- GetPrivateProfileString("d", "na", " ", na.GetBuffer(20), 20, FilePath);
- GetPrivateProfileString("d", "nb", " ", nb.GetBuffer(20), 20, FilePath);
- GetPrivateProfileString("d", "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);
- nReal = dev(_ttoi(na), _ttoi(nb));
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/div/FourOperator/UnitTest1/UnitTest1.vcxproj b/div/FourOperator/UnitTest1/UnitTest1.vcxproj
deleted file mode 100644
index f349363..0000000
--- a/div/FourOperator/UnitTest1/UnitTest1.vcxproj
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- {B68018EC-3312-470A-898A-89F46F36C582}
- Win32Proj
- UnitTest1
- 10.0
- NativeUnitTestProject
-
-
-
- DynamicLibrary
- true
- v142
- false
- MultiByte
-
-
- 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;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- pch.h
-
-
- Windows
- DebugFull
- ..\FourOperator\Debug\dev.obj
-
-
-
-
- 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/div/FourOperator/UnitTest1/UnitTest1.vcxproj.filters b/div/FourOperator/UnitTest1/UnitTest1.vcxproj.filters
deleted file mode 100644
index 83a287b..0000000
--- a/div/FourOperator/UnitTest1/UnitTest1.vcxproj.filters
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- {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/div/FourOperator/UnitTest1/UnitTest1.vcxproj.user b/div/FourOperator/UnitTest1/UnitTest1.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/div/FourOperator/UnitTest1/UnitTest1.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/div/FourOperator/UnitTest1/pch.cpp b/div/FourOperator/UnitTest1/pch.cpp
deleted file mode 100644
index 96ad9c7..0000000
--- a/div/FourOperator/UnitTest1/pch.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- str[k][m] = *(pSectionName + m);
- }
- //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束
- k++;//变量自加,用来保存下一个节名
- //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。
- if (chSectionNames[i + 1] == 0)
- {
- break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止
- }
- }
- }
- return count;//返回节名的个数
-}
-
-// 当使用预编译的头时,需要使用此源文件,编译才能成功。
diff --git a/div/FourOperator/UnitTest1/pch.h b/div/FourOperator/UnitTest1/pch.h
deleted file mode 100644
index f455103..0000000
--- a/div/FourOperator/UnitTest1/pch.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// pch.h: 这是预编译标头文件。
-// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
-// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
-// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
-// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
-
-#ifndef PCH_H
-#define PCH_H
-#include
-
-#include
-// 添加要在此处预编译的标头
-int CalcCount(int n, char(*str)[10]);
-#endif //PCH_H
diff --git a/div/FourOperator/ex1.ini b/div/FourOperator/ex1.ini
deleted file mode 100644
index ad56483..0000000
--- a/div/FourOperator/ex1.ini
+++ /dev/null
@@ -1,21 +0,0 @@
-[a]
-na=6
-nb=2
-nExpect=3
-[b]
-na=4
-nb=2
-nExpect=2
-[c]
-na=3
-nb=0
-nExpect=0
-[d]
-na=100
-nb=10
-nExpect=10
-[e]
-na=100
-nb=10
-nExpect=10
-
diff --git a/div/dev函数及其单元测试说明.md b/div/dev函数及其单元测试说明.md
deleted file mode 100644
index 9c183fc..0000000
--- a/div/dev函数及其单元测试说明.md
+++ /dev/null
@@ -1,229 +0,0 @@
-# dev函数说明文档
-## 一、工程说明
-- 本工程的配置类型是一个exe可执行文件,工程内存在四个函数接口,分别为加、减、乘、除。加法函数接口是调用add静态库实现;减法函数接口是采用在工程中配置加载sub动态库的方式实现;乘法接口以运行时加载动态库mul的方式实现;除法接口调用本身函数的方式实现。
-## 二、工程文件
-1. 除法函数
- - 头文件 dev.h ,放的是dev的声明
- ```C
- #pragma once
- #include
- #include
- /*
- **函数名: dev
- **参数:int ,int
- **返回值:int
- **函数功能:传入两个int类型的参数,对其进行除法运算并返回两数之商。
- */
- 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
- **参数:int ,int
- **返回值:long long
- **函数功能:传入两个int类型的参数,调用静态库add函数的方式实现。
- */
- long long add_api(int x, int y);
-
- /*
- **函数名: sub_api
- **参数:int ,int
- **返回值:int
- **函数功能:传入两个int类型的参数,调用动态库sub函数的方式实现。
- */
- int sub_api(int x, int y);
-
- /*
- **函数名: mul_api
- **参数:int ,int
- **返回值:long long
- **函数功能:传入两个int类型的参数,运行时加载动态库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. 运行结果如下:
- 
- ## 三、单元测试
- - 手动创建ini文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在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
-/*
-**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。
-* 函数名:CalcCount()
-* 入参:int 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- 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;//循环变量,用来访问ini文件中的 节
- 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);//读取第一个参数,保存在na里
- GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里
- GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里
- nReal = dev(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal
- Assert::AreEqual(nReal, _ttoi(nExpect));//对比运算结果和正确结果
- }
-
- }
- };
-}
-```
-4. 附加测试结果
-
-
diff --git a/div/pic/dev.jpg b/div/pic/dev.jpg
deleted file mode 100644
index 4eaa0bf..0000000
Binary files a/div/pic/dev.jpg and /dev/null differ
diff --git a/div/pic/main.jpg b/div/pic/main.jpg
deleted file mode 100644
index ce10fee..0000000
Binary files a/div/pic/main.jpg and /dev/null differ
diff --git a/mul/C/.vs/C/v16/.suo b/mul/C/.vs/C/v16/.suo
deleted file mode 100644
index 74699cd..0000000
Binary files a/mul/C/.vs/C/v16/.suo and /dev/null differ
diff --git a/mul/C/C.sln b/mul/C/C.sln
deleted file mode 100644
index 3dc2ad4..0000000
--- a/mul/C/C.sln
+++ /dev/null
@@ -1,41 +0,0 @@
-
-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}") = "C", "C\C.vcxproj", "{00D1AA82-D340-4FF6-86FF-FFA68354D442}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{888C6BC4-668C-4C89-97CE-8108E4583F92}"
-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
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x64.ActiveCfg = Debug|x64
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x64.Build.0 = Debug|x64
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x86.ActiveCfg = Debug|Win32
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Debug|x86.Build.0 = Debug|Win32
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x64.ActiveCfg = Release|x64
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x64.Build.0 = Release|x64
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x86.ActiveCfg = Release|Win32
- {00D1AA82-D340-4FF6-86FF-FFA68354D442}.Release|x86.Build.0 = Release|Win32
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x64.ActiveCfg = Debug|x64
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x64.Build.0 = Debug|x64
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x86.ActiveCfg = Debug|Win32
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Debug|x86.Build.0 = Debug|Win32
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x64.ActiveCfg = Release|x64
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x64.Build.0 = Release|x64
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x86.ActiveCfg = Release|Win32
- {888C6BC4-668C-4C89-97CE-8108E4583F92}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {3DF6E949-2010-47F5-9C2B-9B17FE0C93F3}
- EndGlobalSection
-EndGlobal
diff --git a/mul/C/C/C.vcxproj b/mul/C/C/C.vcxproj
deleted file mode 100644
index 5858a0f..0000000
--- a/mul/C/C/C.vcxproj
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- Win32Proj
- {00d1aa82-d340-4ff6-86ff-ffa68354d442}
- C
- 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/C/C/Source.def b/mul/C/C/Source.def
deleted file mode 100644
index 3387fa3..0000000
--- a/mul/C/C/Source.def
+++ /dev/null
@@ -1,3 +0,0 @@
-LIBRARY "Source"
-EXPORTS
-mul @1
diff --git a/mul/C/C/mul.cpp b/mul/C/C/mul.cpp
deleted file mode 100644
index e027003..0000000
--- a/mul/C/C/mul.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-#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/C/C/mul.h b/mul/C/C/mul.h
deleted file mode 100644
index a23363e..0000000
--- a/mul/C/C/mul.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma once
-long long _stdcall mul(int x, int y);//ʱ̫ΪɶҪ_stdcallDzӵõʱ쳣
diff --git a/mul/C/UnitTest1/UnitTest1.cpp b/mul/C/UnitTest1/UnitTest1.cpp
deleted file mode 100644
index 0385bcf..0000000
--- a/mul/C/UnitTest1/UnitTest1.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "pch.h"
-#include "CppUnitTest.h"
-#include "../C/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)
- {
- 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 = mul(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
-
- }
-
- };
-}
diff --git a/mul/C/UnitTest1/UnitTest1.vcxproj b/mul/C/UnitTest1/UnitTest1.vcxproj
deleted file mode 100644
index 40ff9d8..0000000
--- a/mul/C/UnitTest1/UnitTest1.vcxproj
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- {888C6BC4-668C-4C89-97CE-8108E4583F92}
- 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)
- ..\C\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/C/UnitTest1/pch.cpp b/mul/C/UnitTest1/pch.cpp
deleted file mode 100644
index eb28fa4..0000000
--- a/mul/C/UnitTest1/pch.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/// 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- str[k][m] = *(pSectionName + m);
- }
- //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束
- k++;//变量自加,用来保存下一个节名
- //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。
- if (chSectionNames[i + 1] == 0)
- {
- break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止
- }
- }
- }
- return count;//返回节名的个数
-}
-
-// 当使用预编译的头时,需要使用此源文件,编译才能成功。
diff --git a/mul/C/UnitTest1/pch.h b/mul/C/UnitTest1/pch.h
deleted file mode 100644
index 90cc566..0000000
--- a/mul/C/UnitTest1/pch.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// pch.h: 这是预编译标头文件。
-// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
-// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
-// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
-// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
-
-#ifndef PCH_H
-#define PCH_H
-int CalcCount(int n, char(*str)[10]);
-// 添加要在此处预编译的标头
-
-#endif //PCH_H
diff --git a/mul/C/ex1.ini b/mul/C/ex1.ini
deleted file mode 100644
index c5b9164..0000000
--- a/mul/C/ex1.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-[TestMethod1]
-na=4
-nb=4
-nExpect=16
-[TestMethod2]
-na=3
-nb=7
-nExpect=21
-[TestMethod3]
-na=3
-nb=5
-nExpect=15
-
-
diff --git a/mul/mul函数及其单元测试说明.md b/mul/mul函数及其单元测试说明.md
deleted file mode 100644
index 8f4c5c0..0000000
--- a/mul/mul函数及其单元测试说明.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# mul函数说明文档
-## 一、工程说明
-- 本工程的配置类型是一个动态库文件,使用的方法是生成.def文件,目的是生成一个可被其他工程调用动态库,动态库的函数功能是:输入两个int类型的数,返回两数之积。
-## 二、头文件 mul.h ,放的是mul函数的声明
-```C
-/*
-**函数名: mul
-**参数:int ,int
-**返回值:long long
-**函数功能:传入两个int类型的参数,对其进行乘法运算并返回两数之积,因为两个int型数相乘结果可能会超出int范围,所以返回值用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;
-}
-```
-## 四、def文件内容 Source.def
- ```
- LIBRARY "Source"
- EXPORTS
- mul @1
-
- ```
-## 五、单元测试
-- 手动创建ini文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在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
-/*
-**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。
-* 函数名:CalcCount()
-* 入参:int 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- 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;//循环变量,用来访问ini文件中的 节
- 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);//读取第一个参数,保存在na里
- GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里
- GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里
- nReal = mul(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal
- Assert::AreEqual(nReal, _ttoi(nExpect));//对比运算结果和正确结果
- }
-
- }
- };
-}
-```
-4. 附加测试结果
-
diff --git a/mul/pic/mul.jpg b/mul/pic/mul.jpg
deleted file mode 100644
index 03799ee..0000000
Binary files a/mul/pic/mul.jpg and /dev/null differ
diff --git a/sub/B/.vs/B/v16/.suo b/sub/B/.vs/B/v16/.suo
deleted file mode 100644
index b5e498c..0000000
Binary files a/sub/B/.vs/B/v16/.suo and /dev/null differ
diff --git a/sub/B/B.sln b/sub/B/B.sln
deleted file mode 100644
index c8242df..0000000
--- a/sub/B/B.sln
+++ /dev/null
@@ -1,41 +0,0 @@
-
-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}") = "B", "B\B.vcxproj", "{C9C2CED7-109C-41F8-A522-2BE7855A0D71}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest1", "UnitTest1\UnitTest1.vcxproj", "{6F4C0F3A-8892-4407-B3F3-E22C659148C1}"
-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
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x64.ActiveCfg = Debug|x64
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x64.Build.0 = Debug|x64
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x86.ActiveCfg = Debug|Win32
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Debug|x86.Build.0 = Debug|Win32
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x64.ActiveCfg = Release|x64
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x64.Build.0 = Release|x64
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x86.ActiveCfg = Release|Win32
- {C9C2CED7-109C-41F8-A522-2BE7855A0D71}.Release|x86.Build.0 = Release|Win32
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x64.ActiveCfg = Debug|x64
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x64.Build.0 = Debug|x64
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x86.ActiveCfg = Debug|Win32
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Debug|x86.Build.0 = Debug|Win32
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x64.ActiveCfg = Release|x64
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x64.Build.0 = Release|x64
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x86.ActiveCfg = Release|Win32
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {B0E8A81B-EFF0-4230-AA65-F9B19FF65BF3}
- EndGlobalSection
-EndGlobal
diff --git a/sub/B/B/B.vcxproj b/sub/B/B/B.vcxproj
deleted file mode 100644
index b92784c..0000000
--- a/sub/B/B/B.vcxproj
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- Win32Proj
- {c9c2ced7-109c-41f8-a522-2be7855a0d71}
- B
- 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;sub_EXPORTS;%(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/B/B/B.vcxproj.filters b/sub/B/B/B.vcxproj.filters
deleted file mode 100644
index 755deeb..0000000
--- a/sub/B/B/B.vcxproj.filters
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- {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/B/B/B.vcxproj.user b/sub/B/B/B.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/sub/B/B/B.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/sub/B/B/sub.cpp b/sub/B/B/sub.cpp
deleted file mode 100644
index 0e03930..0000000
--- a/sub/B/B/sub.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include"sub.h"
-int sub(int x, int y)
-{
- return x - y;
-}
\ No newline at end of file
diff --git a/sub/B/B/sub.h b/sub/B/B/sub.h
deleted file mode 100644
index 67e32fb..0000000
--- a/sub/B/B/sub.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _SUB_H_
-#define _SUB_H_
-
-#ifdef sub_EXPORTS
-#define sub_EXPORTS _declspec(dllexport)
-#else
-#define sub_EXPORTS _declspec(dllimport)
-#endif
-
-sub_EXPORTS int sub(int x, int y);
-
-#endif
-
diff --git a/sub/B/UnitTest1/UnitTest1.cpp b/sub/B/UnitTest1/UnitTest1.cpp
deleted file mode 100644
index 1ef2859..0000000
--- a/sub/B/UnitTest1/UnitTest1.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-#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;
- 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 = sub(_ttoi(na), _ttoi(nb)); //_ttoiCStringתΪ
- Assert::AreEqual(nReal, _ttoi(nExpect));
- }
-
- }
- };
-}
diff --git a/sub/B/UnitTest1/UnitTest1.vcxproj b/sub/B/UnitTest1/UnitTest1.vcxproj
deleted file mode 100644
index 26ba71c..0000000
--- a/sub/B/UnitTest1/UnitTest1.vcxproj
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- {6F4C0F3A-8892-4407-B3F3-E22C659148C1}
- 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)
- ..\B\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/B/UnitTest1/UnitTest1.vcxproj.filters b/sub/B/UnitTest1/UnitTest1.vcxproj.filters
deleted file mode 100644
index 83a287b..0000000
--- a/sub/B/UnitTest1/UnitTest1.vcxproj.filters
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- {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/B/UnitTest1/UnitTest1.vcxproj.user b/sub/B/UnitTest1/UnitTest1.vcxproj.user
deleted file mode 100644
index 88a5509..0000000
--- a/sub/B/UnitTest1/UnitTest1.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/sub/B/UnitTest1/pch.cpp b/sub/B/UnitTest1/pch.cpp
deleted file mode 100644
index d2bdc54..0000000
--- a/sub/B/UnitTest1/pch.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-// 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- str[k][m] = *(pSectionName + m);
- }
- //str[k][++m] = '\0';//手动给节名加上\0,表示这个节名结束
- k++;//变量自加,用来保存下一个节名
- //在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。
- if (chSectionNames[i + 1] == 0)
- {
- break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止
- }
- }
- }
- return count;//返回节名的个数
-}
-// 当使用预编译的头时,需要使用此源文件,编译才能成功。
diff --git a/sub/B/UnitTest1/pch.h b/sub/B/UnitTest1/pch.h
deleted file mode 100644
index 90cc566..0000000
--- a/sub/B/UnitTest1/pch.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// pch.h: 这是预编译标头文件。
-// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
-// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
-// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
-// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
-
-#ifndef PCH_H
-#define PCH_H
-int CalcCount(int n, char(*str)[10]);
-// 添加要在此处预编译的标头
-
-#endif //PCH_H
diff --git a/sub/B/ex1.ini b/sub/B/ex1.ini
deleted file mode 100644
index a6504ef..0000000
--- a/sub/B/ex1.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[TestMethod1]
-na=12
-nb=4
-nExpect=8
-[TestMethod2]
-na=7
-nb=3
-nExpect=4
-
diff --git a/sub/pic/sub.jpg b/sub/pic/sub.jpg
deleted file mode 100644
index 1cd65f6..0000000
Binary files a/sub/pic/sub.jpg and /dev/null differ
diff --git a/sub/sub函数及其单元测试说明.md b/sub/sub函数及其单元测试说明.md
deleted file mode 100644
index cee8b23..0000000
--- a/sub/sub函数及其单元测试说明.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# sub函数说明文档
-## 一、工程说明
-- 本工程的配置类型是一个动态库文件,目的是生成一个可被其他工程调用动态库,动态库的函数功能是:输入两个int类型的数,返回两数之差。
-## 二、头文件 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
-**参数:int ,int
-**返回值:int
-**函数功能:传入两个int类型的参数,对其进行减法运算并返回差值。
-*/
-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文件并添加测试样例,之后在单元测试的源文件里对ini文件进行读取解析 ,完成以后获取单元测试的结果,保证代码覆盖率在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
-/*
-**函数功能:获取一个ini文件里有多少个节,并通过二维指针数组将节名带出来。
-* 函数名:CalcCount()
-* 入参:int 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用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
- 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++)//对chSectionName中保存的内容进行拆分
- {
- if (chSectionNames[0] == '\0')//如果第一个字符就是0,则说明ini中一个节也没有,
- {
- break;
- }
- if (chSectionNames[i] == '\0')
- {
- count++;
- pSectionName = &chSectionNames[i - j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,
- //就是一个节名的首地址
- j = -1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量
- //赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名
- for (m = 0; m <= strlen(pSectionName); m++)//把找到的节名保存到str中
- {
- 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;//循环变量,用来访问ini文件中的 节
- 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);//读取第一个参数,保存在na里
- GetPrivateProfileString(str[j], "nb", " ", nb.GetBuffer(20), 20, FilePath);//读取第二个参数,保存在nb里
- GetPrivateProfileString(str[j], "nExpect", " ", nExpect.GetBuffer(20), 20, FilePath);//读取正确的值,保存在nExpect里
- nReal = sub(_ttoi(na), _ttoi(nb)); //_ttoi是CString转为整型,把运算结果给nReal
- Assert::AreEqual(nReal, _ttoi(nExpect));//对比运算结果和正确结果
- }
-
- }
- };
-}
-```
-4. 附加测试结果
-