diff --git a/LibCmo/LibCmo.vcxproj b/LibCmo/LibCmo.vcxproj new file mode 100644 index 0000000..f9023c8 --- /dev/null +++ b/LibCmo/LibCmo.vcxproj @@ -0,0 +1,181 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {70f64f8d-099c-4c21-b29c-0a8f1e22fb2e} + LibCmo + 10.0 + + + + DynamicLibrary + true + v142 + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + DynamicLibrary + true + v142 + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + true + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + + Level3 + true + LIBCMO_EXPORTING;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + $(ZLIB_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + $(ZLIB_PATH)\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;$(GLIB_WIN32_LIB_PATH);%(AdditionalLibraryDirectories) + glib-2.0.lib;zlibwapi.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + LIBCMO_EXPORTING;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + $(ZLIB_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + true + true + $(ZLIB_PATH)\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;$(GLIB_WIN32_LIB_PATH);%(AdditionalLibraryDirectories) + glib-2.0.lib;zlibwapi.lib;%(AdditionalDependencies) + + + + + Level3 + true + LIBCMO_EXPORTING;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + $(ZLIB_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + $(ZLIB_PATH)\contrib\vstudio\vc14\x64\ZlibDllReleaseWithoutAsm;$(GLIB_WIN64_LIB_PATH) + glib-2.0.lib;zlibwapi.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + LIBCMO_EXPORTING;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + $(ZLIB_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + true + true + $(ZLIB_PATH)\contrib\vstudio\vc14\x64\ZlibDllReleaseWithoutAsm;$(GLIB_WIN64_LIB_PATH) + glib-2.0.lib;zlibwapi.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LibCmo/LibCmo.vcxproj.filters b/LibCmo/LibCmo.vcxproj.filters new file mode 100644 index 0000000..a99f427 --- /dev/null +++ b/LibCmo/LibCmo.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Sources + + + + + Headers + + + Headers + + + Headers + + + Headers + + + \ No newline at end of file diff --git a/LibCmo/VTConstants.h b/LibCmo/VTConstants.h new file mode 100644 index 0000000..64bbd22 --- /dev/null +++ b/LibCmo/VTConstants.h @@ -0,0 +1,6 @@ +#pragma once + +#include +#include + +#define CKERROR int32_t diff --git a/LibCmo/VTReader.c b/LibCmo/VTReader.c new file mode 100644 index 0000000..ed86231 --- /dev/null +++ b/LibCmo/VTReader.c @@ -0,0 +1,9 @@ +#include "VTReader.h" + +CKERROR ReadFileHeaders(void) { + return 0; +} + +CKERROR Load(void) { + return 0; +} diff --git a/LibCmo/VTReader.h b/LibCmo/VTReader.h new file mode 100644 index 0000000..7dce9a8 --- /dev/null +++ b/LibCmo/VTReader.h @@ -0,0 +1,8 @@ +#pragma once + +#include "VTUtils.h" +#include "VTConstants.h" + +LIBCMO_EXPORT CKERROR ReadFileHeaders(void); +LIBCMO_EXPORT CKERROR Load(void); + diff --git a/LibCmo/VTStruct.h b/LibCmo/VTStruct.h new file mode 100644 index 0000000..6f70f09 --- /dev/null +++ b/LibCmo/VTStruct.h @@ -0,0 +1 @@ +#pragma once diff --git a/LibCmo/VTUtils.h b/LibCmo/VTUtils.h new file mode 100644 index 0000000..d108d88 --- /dev/null +++ b/LibCmo/VTUtils.h @@ -0,0 +1,36 @@ +#pragma once + +// https://stackoverflow.com/questions/2164827/explicitly-exporting-shared-library-functions-in-linux +// generate import export macro +#if defined(_MSC_VER) +// Microsoft +#define LIBCMO_RAW_EXPORT __declspec(dllexport) +#define LIBCMO_RAW_IMPORT __declspec(dllimport) +#elif defined(__GNUC__) +// GCC +#define LIBCMO_RAW_EXPORT __attribute__((visibility("default"))) +#define LIBCMO_RAW_IMPORT +#elif defined(__clang__) +// GCC +#define LIBCMO_RAW_EXPORT __attribute__((visibility("default"))) +#define LIBCMO_RAW_IMPORT +#else +// do nothing and hope for the best? +#define LIBCMO_RAW_EXPORT +#define LIBCMO_RAW_IMPORT +#pragma warning Unknown dynamic link import/export semantics. +#endif + +// choosee proper style +#if defined(LIBCMO_EXPORTING) +#define LIBCMO_NAKED_EXPORT LIBCMO_RAW_EXPORT +#else +#define LIBCMO_NAKED_EXPORT LIBCMO_RAW_IMPORT +#endif + +// some work for cpp +#if defined(__cplusplus) +#define LIBCMO_EXPORT extern "C" LIBCMO_NAKED_EXPORT +#else +#define LIBCMO_EXPORT LIBCMO_NAKED_EXPORT +#endif diff --git a/LibRef.props b/LibRef.props new file mode 100644 index 0000000..37000c7 --- /dev/null +++ b/LibRef.props @@ -0,0 +1,46 @@ + + + + + D:\CppLib\GLib\Win32\include\glib-2.0 + D:\CppLib\GLib\Win32\lib\glib-2.0\include + D:\CppLib\GLib\Win32\lib + D:\CppLib\GLib\x64\lib + + D:\CppLib\SQLite\sqlite-amalgamation-3400100 + D:\CppLib\SQLite\sqlite-dll-win32-x86-3400100 + D:\CppLib\SQLite\sqlite-dll-win64-x64-3400100 + + D:\zlib + + + + + + $(GLIB_INCLUDE_PATH) + + + $(GLIB_EXTRA_INCLUDE_PATH) + + + $(GLIB_WIN32_LIB_PATH) + + + $(GLIB_WIN64_LIB_PATH) + + + + $(SQLITE_HEADER_PATH) + + + $(SQLITE_WIN32_LIB_PATH) + + + $(SQLITE_WIN64_LIB_PATH) + + + + $(ZLIB_PATH) + + + \ No newline at end of file diff --git a/Unvirt/Unvirt.vcxproj b/Unvirt/Unvirt.vcxproj new file mode 100644 index 0000000..41d95b3 --- /dev/null +++ b/Unvirt/Unvirt.vcxproj @@ -0,0 +1,175 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {77e7adb6-0d0c-4ba4-8de7-a284c7f83941} + Unvirt + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + true + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\ + $(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\ + + + + Level3 + true + _CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + ../LibCmo;$(SQLITE_HEADER_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + glib-2.0.lib;sqlite3.lib;LibCmo.lib;%(AdditionalDependencies) + $(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SQLITE_WIN32_LIB_PATH);$(GLIB_WIN32_LIB_PATH) + + + + + Level3 + true + true + true + _CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + ../LibCmo;$(SQLITE_HEADER_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + true + true + glib-2.0.lib;sqlite3.lib;LibCmo.lib;%(AdditionalDependencies) + $(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SQLITE_WIN32_LIB_PATH);$(GLIB_WIN32_LIB_PATH) + + + + + Level3 + true + _CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + ../LibCmo;$(SQLITE_HEADER_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + glib-2.0.lib;sqlite3.lib;LibCmo.lib;%(AdditionalDependencies) + $(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SQLITE_WIN64_LIB_PATH);$(GLIB_WIN64_LIB_PATH) + + + + + Level3 + true + true + true + _CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + ../LibCmo;$(SQLITE_HEADER_PATH);$(GLIB_EXTRA_INCLUDE_PATH);$(GLIB_INCLUDE_PATH);%(AdditionalIncludeDirectories) + + + Console + true + true + true + glib-2.0.lib;sqlite3.lib;LibCmo.lib;%(AdditionalDependencies) + $(SolutionDir)out\$(Platform)\$(Configuration)\LibCmo;$(SQLITE_WIN64_LIB_PATH);$(GLIB_WIN64_LIB_PATH) + + + + + + + + + \ No newline at end of file diff --git a/Unvirt/Unvirt.vcxproj.filters b/Unvirt/Unvirt.vcxproj.filters new file mode 100644 index 0000000..c193301 --- /dev/null +++ b/Unvirt/Unvirt.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {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 + + + + + Sources + + + \ No newline at end of file diff --git a/Unvirt/unvirt.c b/Unvirt/unvirt.c new file mode 100644 index 0000000..d1700b5 --- /dev/null +++ b/Unvirt/unvirt.c @@ -0,0 +1,5 @@ + +int main(int argc, char* argv[]) { + + return 0; +} diff --git a/libcmo21.sln b/libcmo21.sln index 0369d0e..e3c3f2d 100644 --- a/libcmo21.sln +++ b/libcmo21.sln @@ -5,14 +5,46 @@ VisualStudioVersion = 16.0.31702.278 MinimumVisualStudioVersion = 10.0.40219.1 Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "PyCmo", "PyCmo\PyCmo.pyproj", "{ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibCmo", "LibCmo\LibCmo.vcxproj", "{70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Unvirt", "Unvirt\Unvirt.vcxproj", "{77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}.Debug|x86.ActiveCfg = Debug|Any CPU {ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}.Release|x64.ActiveCfg = Release|Any CPU + {ADC519E8-5F1B-427D-8E5C-1FABCB6147FB}.Release|x86.ActiveCfg = Release|Any CPU + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x64.ActiveCfg = Debug|x64 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x64.Build.0 = Debug|x64 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x86.ActiveCfg = Debug|Win32 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Debug|x86.Build.0 = Debug|Win32 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|Any CPU.ActiveCfg = Release|Win32 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x64.ActiveCfg = Release|x64 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x64.Build.0 = Release|x64 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x86.ActiveCfg = Release|Win32 + {70F64F8D-099C-4C21-B29C-0A8F1E22FB2E}.Release|x86.Build.0 = Release|Win32 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x64.ActiveCfg = Debug|x64 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x64.Build.0 = Debug|x64 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x86.ActiveCfg = Debug|Win32 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Debug|x86.Build.0 = Debug|Win32 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|Any CPU.ActiveCfg = Release|Win32 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x64.ActiveCfg = Release|x64 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x64.Build.0 = Release|x64 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x86.ActiveCfg = Release|Win32 + {77E7ADB6-0D0C-4BA4-8DE7-A284C7F83941}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE