From d470ad2fc96b02e93ad3b3ef633fe3ddca8dc4ec Mon Sep 17 00:00:00 2001 From: Soar Qin Date: Thu, 13 Jul 2023 19:16:11 +0800 Subject: [PATCH] missing files --- CompressSave/NoneWrapC/CMakeLists.txt | 11 +++++ CompressSave/NoneWrapC/dllmain.c | 20 +++++++++ CompressSave/NoneWrapC/nonewrap.c | 62 +++++++++++++++++++++++++++ CompressSave/NoneWrapC/nonewrap.h | 36 ++++++++++++++++ 4 files changed, 129 insertions(+) create mode 100644 CompressSave/NoneWrapC/CMakeLists.txt create mode 100644 CompressSave/NoneWrapC/dllmain.c create mode 100644 CompressSave/NoneWrapC/nonewrap.c create mode 100644 CompressSave/NoneWrapC/nonewrap.h diff --git a/CompressSave/NoneWrapC/CMakeLists.txt b/CompressSave/NoneWrapC/CMakeLists.txt new file mode 100644 index 0000000..5f5fce5 --- /dev/null +++ b/CompressSave/NoneWrapC/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.2) + +project(nonewrap) + +add_library(nonewrap SHARED + dllmain.c nonewrap.c nonewrap.h) + +target_compile_definitions(nonewrap PRIVATE NONEWRAP_EXPORTS) +if(WIN32) + set_target_properties(nonewrap PROPERTIES PREFIX "") +endif() diff --git a/CompressSave/NoneWrapC/dllmain.c b/CompressSave/NoneWrapC/dllmain.c new file mode 100644 index 0000000..896c9b5 --- /dev/null +++ b/CompressSave/NoneWrapC/dllmain.c @@ -0,0 +1,20 @@ +// dllmain.cpp : Defines the entry point for the DLL application. +#include + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hModule); + break; + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} diff --git a/CompressSave/NoneWrapC/nonewrap.c b/CompressSave/NoneWrapC/nonewrap.c new file mode 100644 index 0000000..85bcc34 --- /dev/null +++ b/CompressSave/NoneWrapC/nonewrap.c @@ -0,0 +1,62 @@ +#include "nonewrap.h" + +#include +#include +#include +#include + +size_t __stdcall CompressBufferBound(size_t inBufferSize) +{ + return inBufferSize * 4; +} + +size_t __stdcall CompressBegin(Context** pctx, int compressionLevel, void* outBuff, size_t outCapacity, void* dict, size_t dictSize) +{ + Context *ctx = (Context *)malloc(sizeof(Context)); + if (ctx == NULL) return -1; + *pctx = ctx; + return 0; +} + +size_t __stdcall CompressUpdate(Context* ctx,void* dstBuffer, size_t dstCapacity,const void* srcBuffer, size_t srcSize) +{ + memcpy(dstBuffer, srcBuffer, srcSize); + return srcSize; +} + +size_t __stdcall CompressEnd(Context* ctx, void* dstBuffer, size_t dstCapacity) +{ + return 0; +} + +void __stdcall CompressContextFree(Context* ctx) +{ + free(ctx); +} + +size_t __stdcall DecompressBegin(Context **pdctx,void *inBuffer,size_t *inBufferSize, size_t *blockSize, void* dict, size_t dictSize) +{ + Context *ctx = (Context *)malloc(sizeof(Context)); + if (ctx == NULL) return -1; + *pdctx = ctx; + *inBufferSize = 0; + *blockSize = 4 * 512 * 1024; + return 0; +} + +void __stdcall DecompressContextReset(Context* dctx) +{ +} + +size_t __stdcall DecompressUpdate(Context* dctx, void* outBuffer, size_t * outBufferSize, void* inBuffer, size_t * inBufferSize) +{ + memcpy(outBuffer, inBuffer, *inBufferSize); + *outBufferSize = *inBufferSize; + return 1; +} + +size_t __stdcall DecompressEnd(Context* ctx) +{ + free(ctx); + return 0; +} \ No newline at end of file diff --git a/CompressSave/NoneWrapC/nonewrap.h b/CompressSave/NoneWrapC/nonewrap.h new file mode 100644 index 0000000..9910e8d --- /dev/null +++ b/CompressSave/NoneWrapC/nonewrap.h @@ -0,0 +1,36 @@ +#pragma once + +#include + +#if defined(__cplusplus) +#define API_EXTERN_C extern "C" +#else +#define API_EXTERN_C +#endif +#ifdef NONEWRAP_EXPORTS +#define NONEAPI API_EXTERN_C __declspec(dllexport) +#else +#define NONEAPI API_EXTERN_C __declspec(dllimport) +#endif + +typedef struct { + int n; +} Context; + +NONEAPI void __stdcall CompressContextFree(Context* ctx); + +NONEAPI size_t __stdcall CompressBufferBound(size_t inBufferSize); + +NONEAPI size_t __stdcall CompressBegin(Context** ctx, int compressionLevel, void* outBuff, size_t outCapacity, void* dict, size_t dictSize); + +NONEAPI size_t __stdcall CompressUpdate(Context* ctx, void* dstBuffer, size_t dstCapacity, const void* srcBuffer, size_t srcSize); + +NONEAPI size_t __stdcall CompressEnd(Context* ctx, void* dstBuffer, size_t dstCapacity); + +NONEAPI size_t __stdcall DecompressBegin(Context** pdctx, void* inBuffer, size_t* inBufferSize, size_t* blockSize, void* dict, size_t dictSize); + +NONEAPI void __stdcall DecompressContextReset(Context* dctx); + +NONEAPI size_t __stdcall DecompressUpdate(Context* dctx, void* outBuffer, size_t* outBufferSize, void* inBuffer, size_t* inBufferSize); + +NONEAPI size_t __stdcall DecompressEnd(Context* dctx);