From 808c57d01be3d52a6680f1c2da2900280ce9df60 Mon Sep 17 00:00:00 2001 From: 2youyou2 <501251991@qq.com> Date: Thu, 28 Sep 2017 11:02:01 +0800 Subject: [PATCH 1/3] export xxtea functions to DLL --- sources/xxtea/xxtea.cpp | 9 +++++++++ sources/xxtea/xxtea.h | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/sources/xxtea/xxtea.cpp b/sources/xxtea/xxtea.cpp index 935eaeaf..876a8fa9 100644 --- a/sources/xxtea/xxtea.cpp +++ b/sources/xxtea/xxtea.cpp @@ -20,6 +20,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + static void xxtea_long_encrypt(xxtea_long *v, xxtea_long len, xxtea_long *k) { xxtea_long n = len - 1; @@ -174,3 +178,8 @@ unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned } /* }}} */ + +#ifdef __cplusplus +} +#endif + diff --git a/sources/xxtea/xxtea.h b/sources/xxtea/xxtea.h index ecdb32ce..a864fc26 100644 --- a/sources/xxtea/xxtea.h +++ b/sources/xxtea/xxtea.h @@ -20,6 +20,11 @@ #define XXTEA_H #include /* for size_t & NULL declarations */ +#include "platform/CCPlatformMacros.h" + +#ifdef __cplusplus +extern "C" { +#endif #if defined(_MSC_VER) @@ -41,7 +46,12 @@ typedef uint32_t xxtea_long; #define XXTEA_MX (z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z) #define XXTEA_DELTA 0x9e3779b9 -unsigned char *xxtea_encrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); -unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); +CC_DLL unsigned char *xxtea_encrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); +CC_DLL unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); #endif + + +#ifdef __cplusplus +} +#endif From 9638089278fc5f8b6d413ef3165d2dd13836d1a6 Mon Sep 17 00:00:00 2001 From: 2youyou2 <501251991@qq.com> Date: Thu, 28 Sep 2017 17:24:06 +0800 Subject: [PATCH 2/3] define XXTEA_DLL macro for xxtea --- sources/xxtea/xxtea.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/sources/xxtea/xxtea.h b/sources/xxtea/xxtea.h index a864fc26..1f4063a0 100644 --- a/sources/xxtea/xxtea.h +++ b/sources/xxtea/xxtea.h @@ -20,7 +20,20 @@ #define XXTEA_H #include /* for size_t & NULL declarations */ -#include "platform/CCPlatformMacros.h" + +#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 +#if defined(CC_STATIC) +#define XXTEA_DLL +#else +#if defined(_USRDLL) +#define XXTEA_DLL __declspec(dllexport) +#else /* use a DLL library */ +#define XXTEA_DLL __declspec(dllimport) +#endif +#endif +#else +#define XXTEA_DLL +#endif #ifdef __cplusplus extern "C" { @@ -46,8 +59,8 @@ typedef uint32_t xxtea_long; #define XXTEA_MX (z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z) #define XXTEA_DELTA 0x9e3779b9 -CC_DLL unsigned char *xxtea_encrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); -CC_DLL unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); +XXTEA_DLL unsigned char *xxtea_encrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); +XXTEA_DLL unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); #endif From 45c237fbe498270939238f99e845c53345dc9263 Mon Sep 17 00:00:00 2001 From: 2youyou2 <501251991@qq.com> Date: Thu, 28 Sep 2017 17:40:02 +0800 Subject: [PATCH 3/3] refine XXTEA_DLL macro --- sources/xxtea/xxtea.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sources/xxtea/xxtea.h b/sources/xxtea/xxtea.h index 1f4063a0..117d81ec 100644 --- a/sources/xxtea/xxtea.h +++ b/sources/xxtea/xxtea.h @@ -21,16 +21,12 @@ #include /* for size_t & NULL declarations */ -#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 -#if defined(CC_STATIC) -#define XXTEA_DLL -#else +#if defined(_WIN32) && defined(_WINDOWS) #if defined(_USRDLL) #define XXTEA_DLL __declspec(dllexport) #else /* use a DLL library */ #define XXTEA_DLL __declspec(dllimport) #endif -#endif #else #define XXTEA_DLL #endif