diff --git a/static/client/client.cpp b/static/client/client.cpp new file mode 100644 index 0000000000000000000000000000000000000000..67382efc00d83edfc8e9369f411de7f9321d4818 --- /dev/null +++ b/static/client/client.cpp @@ -0,0 +1,51 @@ +// client.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. +// +#include "static.h" +#include +#include +#include +#include +#include +#include "dll.h" +#include +//явное связывание +//HINSTANCE loader; +//loader = LoadLibrary(L"dll.dll"); +//typedef void (*comands)(int*, int); +//comands comands1; +//comands1 = (comands)GetProcAddress(loader, "comands"); + +int main() +{ + srand(time(NULL)); + puts("Dani 2 massiva iz 10 chisel:"); + int a[10]; + int b[10]; + puts("Massive A:"); + for (int i = 0; i < 10; i++) { + a[i] = rand() % 20 - 10; + printf("%d ", a[i]); + } + puts(""); + puts("Massive B:"); + for (int i = 0; i < 10; i++) { + b[i] = rand() % 20 - 10; + printf("%d ", b[i]); + } + puts(""); + puts("Massive A posle sortirovki so staticheskoy bibliotekoy:"); + sorter(a, 10); + for (int i = 0; i < 10; i++) { + printf("%d ", a[i]); + } + puts(""); + puts("Massive B posle sortirovki s dinamicheskoy bibliotekoy:"); + sorting(b, 10); + for (int i = 0; i < 10; i++) { + printf("%d ", b[i]); + } + _getch(); + return 0; +} + + diff --git a/static/client/x64/Debug/client.exe b/static/client/x64/Debug/client.exe new file mode 100644 index 0000000000000000000000000000000000000000..3fbf5f16c215900c2dcacec4d5ebeaa111dd721f Binary files /dev/null and b/static/client/x64/Debug/client.exe differ diff --git a/static/dll/dll.cpp b/static/dll/dll.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e16638dfeb09a51ac00ff3826c07fa5c4c35cb70 --- /dev/null +++ b/static/dll/dll.cpp @@ -0,0 +1,23 @@ +#include "pch.h" +#include "dll.h" +#include "framework.h" +#include +#include + +void sorting(int a[], const int n) +{ + int m = 0; + for (int i = 1; i < n; i++) + { + for (int j = 0; j < n; j++) + { + if (a[i] < a[j]) + { + m = a[i]; + a[i] = a[j]; + a[j] = m; + } + } + } +} + diff --git a/static/dll/dll.h b/static/dll/dll.h new file mode 100644 index 0000000000000000000000000000000000000000..e5f2af624efda31b07b8f1a83bdd2955613489c2 --- /dev/null +++ b/static/dll/dll.h @@ -0,0 +1,11 @@ +#pragma once + +#ifdef DLL_EXPORTS +#define DLL_API __declspec(dllexport) +#else +#define DLL_API __declspec(dllimport) +#endif + +extern "C" DLL_API void sorting( + int a[], const int n); + diff --git a/static/dll/framework.h b/static/dll/framework.h new file mode 100644 index 0000000000000000000000000000000000000000..61ca0b638d698bcc288ea3eedc8d2538d6e56f6c --- /dev/null +++ b/static/dll/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows +// Файлы заголовков Windows +#include diff --git a/static/dll/pch.cpp b/static/dll/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9211a5ed87f1319e5d9c7385937e078fcc9793f8 --- /dev/null +++ b/static/dll/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: файл исходного кода, соответствующий предварительно скомпилированному заголовочному файлу + +#include "pch.h" + +// При использовании предварительно скомпилированных заголовочных файлов необходим следующий файл исходного кода для выполнения сборки. diff --git a/static/dll/pch.h b/static/dll/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..42d0757ba52dbb614535d6b09d7794154b073e54 --- /dev/null +++ b/static/dll/pch.h @@ -0,0 +1,13 @@ +// pch.h: это предварительно скомпилированный заголовочный файл. +// Перечисленные ниже файлы компилируются только один раз, что ускоряет последующие сборки. +// Это также влияет на работу IntelliSense, включая многие функции просмотра и завершения кода. +// Однако изменение любого из приведенных здесь файлов между операциями сборки приведет к повторной компиляции всех(!) этих файлов. +// Не добавляйте сюда файлы, которые планируете часто изменять, так как в этом случае выигрыша в производительности не будет. + +#ifndef PCH_H +#define PCH_H + +// Добавьте сюда заголовочные файлы для предварительной компиляции +#include "framework.h" + +#endif //PCH_H diff --git a/static/static.sln b/static/static.sln new file mode 100644 index 0000000000000000000000000000000000000000..6844727a929c9d823f5aae0903177bf9aafd063f --- /dev/null +++ b/static/static.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33213.308 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static", "static\static.vcxproj", "{062A6678-4C4A-4076-97E8-C6D70494F3C0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client\client.vcxproj", "{7E35AC9F-6690-4284-92D7-DF7A08FD12B5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "dll\dll.vcxproj", "{5DCCC464-1798-4568-A60E-F1129A5FEB2F}" +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 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Debug|x64.ActiveCfg = Debug|x64 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Debug|x64.Build.0 = Debug|x64 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Debug|x86.ActiveCfg = Debug|Win32 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Debug|x86.Build.0 = Debug|Win32 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Release|x64.ActiveCfg = Release|x64 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Release|x64.Build.0 = Release|x64 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Release|x86.ActiveCfg = Release|Win32 + {062A6678-4C4A-4076-97E8-C6D70494F3C0}.Release|x86.Build.0 = Release|Win32 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Debug|x64.ActiveCfg = Debug|x64 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Debug|x64.Build.0 = Debug|x64 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Debug|x86.ActiveCfg = Debug|Win32 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Debug|x86.Build.0 = Debug|Win32 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Release|x64.ActiveCfg = Release|x64 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Release|x64.Build.0 = Release|x64 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Release|x86.ActiveCfg = Release|Win32 + {7E35AC9F-6690-4284-92D7-DF7A08FD12B5}.Release|x86.Build.0 = Release|Win32 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Debug|x64.ActiveCfg = Debug|x64 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Debug|x64.Build.0 = Debug|x64 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Debug|x86.ActiveCfg = Debug|Win32 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Debug|x86.Build.0 = Debug|Win32 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Release|x64.ActiveCfg = Release|x64 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Release|x64.Build.0 = Release|x64 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Release|x86.ActiveCfg = Release|Win32 + {5DCCC464-1798-4568-A60E-F1129A5FEB2F}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4F61D7DE-42CA-4594-8AEF-439C5F339902} + EndGlobalSection +EndGlobal diff --git a/static/static/framework.h b/static/static/framework.h new file mode 100644 index 0000000000000000000000000000000000000000..cb4d8613af8373d037f8cd668b1cea69d870be7c --- /dev/null +++ b/static/static/framework.h @@ -0,0 +1,3 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows diff --git a/static/static/pch.cpp b/static/static/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9211a5ed87f1319e5d9c7385937e078fcc9793f8 --- /dev/null +++ b/static/static/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: файл исходного кода, соответствующий предварительно скомпилированному заголовочному файлу + +#include "pch.h" + +// При использовании предварительно скомпилированных заголовочных файлов необходим следующий файл исходного кода для выполнения сборки. diff --git a/static/static/pch.h b/static/static/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..42d0757ba52dbb614535d6b09d7794154b073e54 --- /dev/null +++ b/static/static/pch.h @@ -0,0 +1,13 @@ +// pch.h: это предварительно скомпилированный заголовочный файл. +// Перечисленные ниже файлы компилируются только один раз, что ускоряет последующие сборки. +// Это также влияет на работу IntelliSense, включая многие функции просмотра и завершения кода. +// Однако изменение любого из приведенных здесь файлов между операциями сборки приведет к повторной компиляции всех(!) этих файлов. +// Не добавляйте сюда файлы, которые планируете часто изменять, так как в этом случае выигрыша в производительности не будет. + +#ifndef PCH_H +#define PCH_H + +// Добавьте сюда заголовочные файлы для предварительной компиляции +#include "framework.h" + +#endif //PCH_H diff --git a/static/static/static.cpp b/static/static/static.cpp new file mode 100644 index 0000000000000000000000000000000000000000..809bf38582c5929ccafb7703af3df803c830ad08 --- /dev/null +++ b/static/static/static.cpp @@ -0,0 +1,27 @@ +// static.cpp : Определяет функции для статической библиотеки. +// + +#include "pch.h" +#include "static.h" +#include "framework.h" +#include +#include + +// TODO: Это пример библиотечной функции. +void sorter(int a[], int n) +{ + int m = 0; + for (int i = 1; i < n; i++) + { + for (int j = 0; j < n; j++) + { + if (a[i] < a[j]) + { + m = a[i]; + a[i] = a[j]; + a[j] = m; + } + } + } +} + diff --git a/static/static/static.h b/static/static/static.h new file mode 100644 index 0000000000000000000000000000000000000000..7e7918a653020a62f40a05520cc8cf7cf7f2ec3d --- /dev/null +++ b/static/static/static.h @@ -0,0 +1,3 @@ +#pragma once + +void sorter(int a[], int n); \ No newline at end of file