diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..87c5a9f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+.vs
+.vscode
+out
+build
+mingw
+vs2019
+*.a
+*.so
+*.exe
+*.dll
+*.bin
+*.ilk
+*.pdb
+*.obj
+*.manifest
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..a5a6fb2
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,18 @@
+cmake_minimum_required(VERSION 3.18)
+project(pslib)
+
+set(HEADERS
+ ps.h
+ ps_image.h
+ ps_inject.h
+ ps_target.h
+)
+
+set(SOURCES
+ ps.cpp
+ ps_image.cpp
+ ps_inject.cpp
+)
+
+add_library(pslib STATIC ${SOURCSE} ${HEADERS})
+set_target_properties(pslib PROPERTIES LINKER_LANGUAGE CXX)
\ No newline at end of file
diff --git a/ps.c b/ps.cpp
similarity index 100%
rename from ps.c
rename to ps.cpp
diff --git a/ps_image.c b/ps_image.cpp
similarity index 100%
rename from ps_image.c
rename to ps_image.cpp
diff --git a/ps_inject.c b/ps_inject.cpp
similarity index 100%
rename from ps_inject.c
rename to ps_inject.cpp
diff --git a/pslib.vcxproj b/pslib.vcxproj
deleted file mode 100644
index 85437ec..0000000
--- a/pslib.vcxproj
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- {AA1B5896-DAB2-4A98-8978-710A51814757}
- pslib
-
-
-
- StaticLibrary
- true
- v120
- MultiByte
-
-
- StaticLibrary
- true
- v120
- MultiByte
-
-
- StaticLibrary
- false
- v120
- true
- MultiByte
-
-
- StaticLibrary
- false
- v120
- true
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Level3
- Disabled
- true
-
-
- true
-
-
-
-
- Level3
- Disabled
- true
-
-
- true
-
-
-
-
- Level3
- MinSpace
- true
- true
- true
- MultiThreaded
- false
- false
-
-
- true
- true
- true
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- true
-
-
- true
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pslib.vcxproj.filters b/pslib.vcxproj.filters
deleted file mode 100644
index 03d6b1f..0000000
--- a/pslib.vcxproj.filters
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hh;hpp;hxx;hm;inl;inc;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
-
-
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
-
\ No newline at end of file