#endif
using namespace std;
--
Gitee
From 8c706887ecb0b53c712a54c3ab5743be78a7588a Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 14:33:48 +0800
Subject: [PATCH 37/66] delete:not useful yml code
---
.github/workflows/macbuild.yml | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 090722a..8a257d4 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -39,12 +39,8 @@ jobs:
git submodule update
- name: install library
- run: |
- brew install lua opencv qrencode
- echo "==============tesseract================"
- ls -al /opt/homebrew/opt/tesseract/include/tesseract
- echo "==============tesseract================"
- cat /opt/homebrew/opt/tesseract/include/tesseract/capi.h
+ run: brew install lua opencv qrencode
+
# 设置依赖库的环境变量
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
@@ -57,7 +53,7 @@ jobs:
run: |
cd libxengine
chmod 777 *
- ./XEngine_LINEnv.sh -i 0
+ ./XEngine_LINEnv.sh -i 1
latest_tag=$(git ls-remote --tags --sort="v:refname" https://github.com/libxengine/libxengine.git | awk '{print $2}' | sed 's/refs\/tags\///' | tail -n 1)
@@ -65,9 +61,6 @@ jobs:
unzip ./XEngine_Mac_Arm64.zip -d ./XEngine_Mac_Arm64
cd XEngine_Mac_Arm64
- sudo mkdir -p /usr/local/include
- sudo mkdir -p /usr/local/lib
- sudo cp -rf ./XEngine_Include /usr/local/include
sudo find ./XEngine_Mac -name "*.dylib" -exec cp {} /usr/local/lib \;
#编译
- name: make debug
--
Gitee
From 2e0a940e5afdb5a7e7b361a33313f212ec2098c2 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 14:38:38 +0800
Subject: [PATCH 38/66] modify:test leptonica library
---
.github/workflows/macbuild.yml | 5 +++--
XEngine_Source/XEngine_ModuleHelp/Makefile | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 8a257d4..4bde21d 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -39,8 +39,9 @@ jobs:
git submodule update
- name: install library
- run: brew install lua opencv qrencode
-
+ run: |
+ brew install lua opencv qrencode
+ ls -al /opt/homebrew/opt/leptonica
# 设置依赖库的环境变量
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile
index e22d2b7..2d20d29 100644
--- a/XEngine_Source/XEngine_ModuleHelp/Makefile
+++ b/XEngine_Source/XEngine_ModuleHelp/Makefile
@@ -58,8 +58,8 @@ else ifeq ($(PLATFORM),mac)
PLATVER = -D __MACOS__
PLATDIR = XEngine_Mac
FILEEXT = dylib
- LOADHDR += -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include -I /opt/homebrew/opt/lua/include
- LOADSO += -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib -L /opt/homebrew/opt/lua/lib
+ LOADHDR += -I /opt/homebrew/opt/ -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include -I /opt/homebrew/opt/lua/include
+ LOADSO += -L /opt/homebrew/opt/leptonica/lib -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib -L /opt/homebrew/opt/lua/lib
LIBFLAG = -dynamiclib
LIBEX = -lpthread -ldl
LOADBIN = -Wl,-rpath,@loader_path/./
--
Gitee
From 87c854029ac4cc6cdb27d0a22b8f794bf7b39897 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 14:44:57 +0800
Subject: [PATCH 39/66] fixed:engine install
---
.github/workflows/macbuild.yml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 4bde21d..6e623ad 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -42,6 +42,7 @@ jobs:
run: |
brew install lua opencv qrencode
ls -al /opt/homebrew/opt/leptonica
+
# 设置依赖库的环境变量
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
@@ -54,7 +55,7 @@ jobs:
run: |
cd libxengine
chmod 777 *
- ./XEngine_LINEnv.sh -i 1
+ ./XEngine_LINEnv.sh -i 0
latest_tag=$(git ls-remote --tags --sort="v:refname" https://github.com/libxengine/libxengine.git | awk '{print $2}' | sed 's/refs\/tags\///' | tail -n 1)
@@ -62,6 +63,9 @@ jobs:
unzip ./XEngine_Mac_Arm64.zip -d ./XEngine_Mac_Arm64
cd XEngine_Mac_Arm64
+ sudo mkdir -p /usr/local/include
+ sudo mkdir -p /usr/local/lib
+ sudo cp -rf ./XEngine_Include /usr/local/include
sudo find ./XEngine_Mac -name "*.dylib" -exec cp {} /usr/local/lib \;
#编译
- name: make debug
--
Gitee
From 41f6bd7f87ec4f2486eb5de2ebd93a4992f20a47 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:02:39 +0800
Subject: [PATCH 40/66] fixed:ubuntu build workflows/ubuntubuild.yml
---
.github/workflows/ubuntubuild.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ubuntubuild.yml b/.github/workflows/ubuntubuild.yml
index 9a7bb06..4b5fd4e 100644
--- a/.github/workflows/ubuntubuild.yml
+++ b/.github/workflows/ubuntubuild.yml
@@ -45,7 +45,7 @@ jobs:
run: |
sudo apt update -y
sudo apt upgrade -y
- sudo apt install liblua5.4-dev libopencv-dev libopencv-contrib-dev libqrencode-dev -y
+ sudo apt install liblua5.4-dev libopencv-dev libopencv-contrib-dev libqrencode-dev libleptonica-dev libtesseract-dev -y
# 设置依赖库的环境变量
- name: Set up Dependency ubuntu24.04 Environment
--
Gitee
From d63666e24efb784f1b98588a6143178e25ca6311 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:09:06 +0800
Subject: [PATCH 41/66] modify:show library on mac
---
.github/workflows/macbuild.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 6e623ad..8c16f9d 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -42,7 +42,7 @@ jobs:
run: |
brew install lua opencv qrencode
ls -al /opt/homebrew/opt/leptonica
-
+ ls -al /opt/homebrew/Cellar/leptonica/1.85.0
# 设置依赖库的环境变量
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
--
Gitee
From 1bfa5d5d153376548d2752aae67795a89941743e Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:16:33 +0800
Subject: [PATCH 42/66] modify:show include file
---
.github/workflows/macbuild.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 8c16f9d..15e21f2 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -41,8 +41,8 @@ jobs:
- name: install library
run: |
brew install lua opencv qrencode
- ls -al /opt/homebrew/opt/leptonica
- ls -al /opt/homebrew/Cellar/leptonica/1.85.0
+ ls -al /opt/homebrew/opt/leptonica/include
+ ls -al /opt/homebrew/Cellar/leptonica/1.85.0/include
# 设置依赖库的环境变量
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
--
Gitee
From 48013c7170f3101f8035adcbd06e67edf1b5fc01 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:23:06 +0800
Subject: [PATCH 43/66] added:leptonica header path
---
.github/workflows/macbuild.yml | 2 +-
.github/workflows/msbuild.yml | 2 +-
.github/workflows/ubuntubuild.yml | 2 +-
XEngine_Source/XEngine_ModuleHelp/Makefile | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 15e21f2..b558aee 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -42,7 +42,7 @@ jobs:
run: |
brew install lua opencv qrencode
ls -al /opt/homebrew/opt/leptonica/include
- ls -al /opt/homebrew/Cellar/leptonica/1.85.0/include
+ ls -al /opt/homebrew/Cellar/leptonica/1.85.0/include/leptonica
# 设置依赖库的环境变量
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 03fff5f..53d5462 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -2,7 +2,7 @@ name: windows build workflows
on:
push:
- branches: [ "develop" ]
+ branches: [ "develop1" ]
paths:
- 'XEngine_Source/**'
- 'XEngine_Release/**'
diff --git a/.github/workflows/ubuntubuild.yml b/.github/workflows/ubuntubuild.yml
index 4b5fd4e..f125f63 100644
--- a/.github/workflows/ubuntubuild.yml
+++ b/.github/workflows/ubuntubuild.yml
@@ -2,7 +2,7 @@ name: ubuntu build workflows
on:
push:
- branches: [ "develop" ]
+ branches: [ "develop1" ]
paths:
- 'XEngine_Source/**'
- 'XEngine_Release/**'
diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile
index 2d20d29..e41cba4 100644
--- a/XEngine_Source/XEngine_ModuleHelp/Makefile
+++ b/XEngine_Source/XEngine_ModuleHelp/Makefile
@@ -58,7 +58,7 @@ else ifeq ($(PLATFORM),mac)
PLATVER = -D __MACOS__
PLATDIR = XEngine_Mac
FILEEXT = dylib
- LOADHDR += -I /opt/homebrew/opt/ -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include -I /opt/homebrew/opt/lua/include
+ LOADHDR += -I /opt/homebrew/opt/leptonica/include -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include -I /opt/homebrew/opt/lua/include
LOADSO += -L /opt/homebrew/opt/leptonica/lib -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib -L /opt/homebrew/opt/lua/lib
LIBFLAG = -dynamiclib
LIBEX = -lpthread -ldl
--
Gitee
From 9ee062dfba242acf3e733851187d6fec5658c5e7 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:31:07 +0800
Subject: [PATCH 44/66] modify:test png16 library
---
.github/workflows/macbuild.yml | 8 ++++----
XEngine_Source/XEngine_ModuleHelp/Makefile | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index b558aee..7d52f48 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -41,9 +41,9 @@ jobs:
- name: install library
run: |
brew install lua opencv qrencode
- ls -al /opt/homebrew/opt/leptonica/include
- ls -al /opt/homebrew/Cellar/leptonica/1.85.0/include/leptonica
- # 设置依赖库的环境变量
+ ls -al /opt/homebrew/opt/png16/include
+ ls -al /opt/homebrew/Cellar/png16
+
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
run: |
@@ -67,7 +67,7 @@ jobs:
sudo mkdir -p /usr/local/lib
sudo cp -rf ./XEngine_Include /usr/local/include
sudo find ./XEngine_Mac -name "*.dylib" -exec cp {} /usr/local/lib \;
- #编译
+
- name: make debug
run: |
cd XEngine_Source
diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile
index e41cba4..05c9f12 100644
--- a/XEngine_Source/XEngine_ModuleHelp/Makefile
+++ b/XEngine_Source/XEngine_ModuleHelp/Makefile
@@ -59,7 +59,7 @@ else ifeq ($(PLATFORM),mac)
PLATDIR = XEngine_Mac
FILEEXT = dylib
LOADHDR += -I /opt/homebrew/opt/leptonica/include -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include -I /opt/homebrew/opt/lua/include
- LOADSO += -L /opt/homebrew/opt/leptonica/lib -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib -L /opt/homebrew/opt/lua/lib
+ LOADSO += -L /opt/homebrew/opt/leptonica/lib -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib -L /opt/homebrew/opt/lua/lib -L /opt/homebrew/opt/png16/lib
LIBFLAG = -dynamiclib
LIBEX = -lpthread -ldl
LOADBIN = -Wl,-rpath,@loader_path/./
--
Gitee
From a2e0c3d243c4337377eaed96bd83f3f7217f78a0 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:37:13 +0800
Subject: [PATCH 45/66] delete:library test
---
.github/workflows/macbuild.yml | 4 ++--
XEngine_Source/XEngine_ModuleHelp/Makefile | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 7d52f48..820ad22 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -41,8 +41,8 @@ jobs:
- name: install library
run: |
brew install lua opencv qrencode
- ls -al /opt/homebrew/opt/png16/include
- ls -al /opt/homebrew/Cellar/png16
+ # ls -al /opt/homebrew/opt/png16/include
+ # ls -al /opt/homebrew/Cellar/png16
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile
index 05c9f12..972e381 100644
--- a/XEngine_Source/XEngine_ModuleHelp/Makefile
+++ b/XEngine_Source/XEngine_ModuleHelp/Makefile
@@ -19,7 +19,7 @@ ifeq ($(MACRO_QR_SUPPORT),1)
LIB += -lqrencode
endif
ifeq ($(MACRO_OPENCV_SUPPORT),1)
- LIB += -llzma -lpng16 -lopencv_core -lopencv_imgcodecs -lopencv_imgproc -ltiff -lopencv_wechat_qrcode -ltesseract -lleptonica
+ LIB += -llzma -lopencv_core -lopencv_imgcodecs -lopencv_imgproc -lopencv_wechat_qrcode -ltesseract -lleptonica
endif
ifeq ($(RELEASE),1)
--
Gitee
From 8e14677beb9c2aa70095dc16068c865b0a225791 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:47:37 +0800
Subject: [PATCH 46/66] fixed:lua link on mac
---
XEngine_Source/XEngine_ModuleHelp/Makefile | 4 ++--
XEngine_Source/XEngine_ModulePlugin/Makefile | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile
index 972e381..0af0dce 100644
--- a/XEngine_Source/XEngine_ModuleHelp/Makefile
+++ b/XEngine_Source/XEngine_ModuleHelp/Makefile
@@ -58,8 +58,8 @@ else ifeq ($(PLATFORM),mac)
PLATVER = -D __MACOS__
PLATDIR = XEngine_Mac
FILEEXT = dylib
- LOADHDR += -I /opt/homebrew/opt/leptonica/include -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include -I /opt/homebrew/opt/lua/include
- LOADSO += -L /opt/homebrew/opt/leptonica/lib -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib -L /opt/homebrew/opt/lua/lib -L /opt/homebrew/opt/png16/lib
+ LOADHDR += -I /opt/homebrew/opt/leptonica/include -I /opt/homebrew/opt/opencv/include/opencv4 -I /opt/homebrew/opt/tesseract/include -I /opt/homebrew/opt/qrencode/include
+ LOADSO += -L /opt/homebrew/opt/leptonica/lib -L /opt/homebrew/opt/opencv/lib -L /opt/homebrew/opt/tesseract/lib -L /opt/homebrew/opt/qrencode/lib
LIBFLAG = -dynamiclib
LIBEX = -lpthread -ldl
LOADBIN = -Wl,-rpath,@loader_path/./
diff --git a/XEngine_Source/XEngine_ModulePlugin/Makefile b/XEngine_Source/XEngine_ModulePlugin/Makefile
index 532aab6..d84472e 100644
--- a/XEngine_Source/XEngine_ModulePlugin/Makefile
+++ b/XEngine_Source/XEngine_ModulePlugin/Makefile
@@ -54,6 +54,10 @@ else ifeq ($(PLATFORM),mac)
PLATDIR = XEngine_Mac
FILEEXT = dylib
LIBFLAG = -dynamiclib
+
+ LOADHDR += -I /opt/homebrew/opt/lua/include
+ LOADSO += -L /opt/homebrew/opt/lua/lib
+
ifeq ($(MACRO_LUA_SUPPORT),1)
LIB += -llua
endif
--
Gitee
From 0064491ebcbcbc30872c17ef326fc785f2353cdb Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 15:54:31 +0800
Subject: [PATCH 47/66] modify:lua include test
---
.github/workflows/macbuild.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 820ad22..fe05eb8 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -41,8 +41,10 @@ jobs:
- name: install library
run: |
brew install lua opencv qrencode
- # ls -al /opt/homebrew/opt/png16/include
- # ls -al /opt/homebrew/Cellar/png16
+ brew --prefix lua
+ brew info lua
+ ls -al /opt/homebrew/opt/lua
+ ls -al /opt/homebrew/Cellar/lua
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
--
Gitee
From caaf15e08cbd7a44edc9bfb8ee5ab3cdcaaa7506 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 16:06:04 +0800
Subject: [PATCH 48/66] fixed:ms build workflow
---
.github/workflows/macbuild.yml | 2 +-
.github/workflows/msbuild.yml | 24 +++++++++++++++++-------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index fe05eb8..0e18248 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -44,7 +44,7 @@ jobs:
brew --prefix lua
brew info lua
ls -al /opt/homebrew/opt/lua
- ls -al /opt/homebrew/Cellar/lua
+ ls -al /opt/homebrew/Cellar/lua/5.4.7
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 53d5462..44fbbc2 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -2,7 +2,7 @@ name: windows build workflows
on:
push:
- branches: [ "develop1" ]
+ branches: [ "develop" ]
paths:
- 'XEngine_Source/**'
- 'XEngine_Release/**'
@@ -65,16 +65,26 @@ jobs:
./vcpkg.exe integrate install
shell: pwsh
- # 设置依赖库的环境变量
- - name: Set up Dependency Environment Variables
+ - name: Set up Dependency x86_64 Environment
+ if: matrix.platform == 'x64'
run: |
echo "XENGINE_INCLUDE=${{ github.workspace }}/libxengine" | Out-File -FilePath $env:GITHUB_ENV -Append
- echo "XENGINE_LIB32=${{ github.workspace }}/libxengine/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
echo "XENGINE_LIB64=${{ github.workspace }}/libxengine/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
shell: pwsh
-
- - name: Set code page
- run: chcp 65001
+ - name: Set up Dependency x86_32 Environment
+ if: matrix.platform == 'x86'
+ run: |
+ $response = Invoke-RestMethod -Uri "https://api.github.com/repos/libxengine/libxengine/releases/latest" -Headers @{"Accept"="application/vnd.github.v3+json"}
+ $latest_tag = $response.tag_name
+ Write-Host "Latest Tag: $latest_tag"
+
+ $url = "https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Windows_x86-32.zip"
+ Invoke-WebRequest -Uri $url -OutFile "XEngine_Windows_x86-32.zip"
+ Expand-Archive -Path ./XEngine_Windows_x86-32.zip -DestinationPath ./XEngine_Windows -Force
+
+ echo "XENGINE_INCLUDE=${{ github.workspace }}/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
+ echo "XENGINE_LIB32=${{ github.workspace }}/XEngine_Windows/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
+ shell: pwsh
# 配置 MSBuild 的路径,准备构建 VC++ 项目
- name: Setup MSBuild
--
Gitee
From 2afc56ca07336b0878901c17beff8fa6f5e3f6a3 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 16:12:12 +0800
Subject: [PATCH 49/66] modify:show lua
---
.github/workflows/macbuild.yml | 4 ++--
.github/workflows/msbuild.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 0e18248..7b3ca9e 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -43,8 +43,8 @@ jobs:
brew install lua opencv qrencode
brew --prefix lua
brew info lua
- ls -al /opt/homebrew/opt/lua
- ls -al /opt/homebrew/Cellar/lua/5.4.7
+ ls -al /opt/homebrew/opt/lua/include
+ ls -al /opt/homebrew/Cellar/lua/5.4.7/include
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 44fbbc2..3faa4ed 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -2,7 +2,7 @@ name: windows build workflows
on:
push:
- branches: [ "develop" ]
+ branches: [ "develop1" ]
paths:
- 'XEngine_Source/**'
- 'XEngine_Release/**'
--
Gitee
From c685138a05c6af0ae32d91853b71f1af0d51b6b7 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 16:21:12 +0800
Subject: [PATCH 50/66] modify:show lua file
---
.github/workflows/macbuild.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 7b3ca9e..753b225 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -43,8 +43,8 @@ jobs:
brew install lua opencv qrencode
brew --prefix lua
brew info lua
- ls -al /opt/homebrew/opt/lua/include
- ls -al /opt/homebrew/Cellar/lua/5.4.7/include
+ ls -al /opt/homebrew/opt/lua/include/lua
+ ls -al /opt/homebrew/Cellar/lua/5.4.7/include/lua5.4
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
--
Gitee
From 810a88084b5c80240c415bd111aaa006f3ef8883 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 16:30:45 +0800
Subject: [PATCH 51/66] modify:try to build fix
---
XEngine_Source/XEngine_ModulePlugin/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/XEngine_Source/XEngine_ModulePlugin/Makefile b/XEngine_Source/XEngine_ModulePlugin/Makefile
index d84472e..cba6825 100644
--- a/XEngine_Source/XEngine_ModulePlugin/Makefile
+++ b/XEngine_Source/XEngine_ModulePlugin/Makefile
@@ -55,7 +55,7 @@ else ifeq ($(PLATFORM),mac)
FILEEXT = dylib
LIBFLAG = -dynamiclib
- LOADHDR += -I /opt/homebrew/opt/lua/include
+ LOADHDR += -I /opt/homebrew/opt/lua/include/lua
LOADSO += -L /opt/homebrew/opt/lua/lib
ifeq ($(MACRO_LUA_SUPPORT),1)
--
Gitee
From a339f4ba7059fccb29bde54ed34e0996385a7e0f Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 16:36:14 +0800
Subject: [PATCH 52/66] fixed:build error on mac 14
---
.github/workflows/macbuild.yml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.github/workflows/macbuild.yml b/.github/workflows/macbuild.yml
index 753b225..860d1e8 100644
--- a/.github/workflows/macbuild.yml
+++ b/.github/workflows/macbuild.yml
@@ -41,10 +41,6 @@ jobs:
- name: install library
run: |
brew install lua opencv qrencode
- brew --prefix lua
- brew info lua
- ls -al /opt/homebrew/opt/lua/include/lua
- ls -al /opt/homebrew/Cellar/lua/5.4.7/include/lua5.4
- name: Set up Dependency x86_64 Environment
if: matrix.os == 'macos-13'
--
Gitee
From 9994604b148702cec911c757a447262418b646ae Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 17:34:20 +0800
Subject: [PATCH 53/66] update:vs copy file
---
XEngine_Source/VSCopy_Debug.bat | 2 +-
XEngine_Source/VSCopy_x64.bat | 2 +-
XEngine_Source/VSCopy_x86.bat | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/XEngine_Source/VSCopy_Debug.bat b/XEngine_Source/VSCopy_Debug.bat
index 98b7e53..1e28ada 100644
--- a/XEngine_Source/VSCopy_Debug.bat
+++ b/XEngine_Source/VSCopy_Debug.bat
@@ -3,7 +3,7 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_BaseSafe.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_Algorithm.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_Core.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_ManagePool.dll" "./"
-copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_OPenSsl.dll" "./"
+copy /y "D:\XEngine\XEngine_SourceCode\Debug\Cryption.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_APIHelp.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_Stream.dll" "./"
diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat
index c9fab93..5c7f094 100644
--- a/XEngine_Source/VSCopy_x64.bat
+++ b/XEngine_Source/VSCopy_x64.bat
@@ -3,7 +3,7 @@ copy /y "%XEngine_Lib64%\XEngine_BaseLib\XEngine_BaseSafe.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_BaseLib\XEngine_Algorithm.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_Core.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_ManagePool.dll" "./"
-copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_OPenSsl.dll" "./"
+copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_Cryption.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_Client\XClient_APIHelp.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_Client\XClient_Stream.dll" "./"
diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat
index c44cb9c..d02822a 100644
--- a/XEngine_Source/VSCopy_x86.bat
+++ b/XEngine_Source/VSCopy_x86.bat
@@ -3,7 +3,7 @@ copy /y "%XEngine_Lib32%\XEngine_BaseLib\XEngine_BaseSafe.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_BaseLib\XEngine_Algorithm.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_Core.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_ManagePool.dll" "./"
-copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_OPenSsl.dll" "./"
+copy /y "%XEngine_Lib32%\XEngine_Core\XEngine_Cryption.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_Client\XClient_APIHelp.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_Client\XClient_Stream.dll" "./"
--
Gitee
From 126c9be8e8725d098cc466e8aa4b18cd2d7cf2d4 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 17:35:47 +0800
Subject: [PATCH 54/66] improved:workflows
---
.github/workflows/msbuild.yml | 2 +-
.github/workflows/ubuntubuild.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 3faa4ed..44fbbc2 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -2,7 +2,7 @@ name: windows build workflows
on:
push:
- branches: [ "develop1" ]
+ branches: [ "develop" ]
paths:
- 'XEngine_Source/**'
- 'XEngine_Release/**'
diff --git a/.github/workflows/ubuntubuild.yml b/.github/workflows/ubuntubuild.yml
index f125f63..4b5fd4e 100644
--- a/.github/workflows/ubuntubuild.yml
+++ b/.github/workflows/ubuntubuild.yml
@@ -2,7 +2,7 @@ name: ubuntu build workflows
on:
push:
- branches: [ "develop1" ]
+ branches: [ "develop" ]
paths:
- 'XEngine_Source/**'
- 'XEngine_Release/**'
--
Gitee
From 3d8ee4785d2dde78a4739afaab379da478d47877 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 17:40:55 +0800
Subject: [PATCH 55/66] fixed:test process name is incorrect
---
.github/workflows/msbuild.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 44fbbc2..534b974 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -102,8 +102,7 @@ jobs:
cp -r XEngine_Source/VSCopy_x86.bat XEngine_Release/
cd XEngine_Release
./VSCopy_x86.bat
- ./XEngine_APIServiceApp.exe -t
- shell: pwsh
+ ./XEngine_HttpApp.exe -t
- name: Conditional Step for x64 Release
if: matrix.configuration == 'Release' && matrix.platform == 'x64'
run: |
@@ -112,6 +111,7 @@ jobs:
cp -r XEngine_Source/VSCopy_x64.bat XEngine_Release/
cd XEngine_Release
./VSCopy_x64.bat
+ ./XEngine_HttpApp.exe -t
shell: pwsh
- name: Upload folder as artifact with x86
--
Gitee
From d8336f5eb9d475a24884ccd4c6ddc72e9e58926d Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Thu, 26 Dec 2024 20:28:37 +0800
Subject: [PATCH 56/66] Update msbuild.yml
---
.github/workflows/msbuild.yml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 534b974..86027cb 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -93,6 +93,10 @@ jobs:
#编译
- name: Build Solution
run: msbuild XEngine_Source/XEngine.sln /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }}
+ - name: Enable debug mode
+ run: |
+ echo "Enabling debug mode..."
+ echo "ACTIONS_STEP_DEBUG=true" >> $GITHUB_ENV
#测试
- name: Conditional Step for x86 Release
if: matrix.configuration == 'Release' && matrix.platform == 'x86'
@@ -126,4 +130,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: XEngine_APIServiceApp-x86_64-Windows
- path: XEngine_Release/
\ No newline at end of file
+ path: XEngine_Release/
--
Gitee
From e06a43786668c0def7e35998fb30a9df00dd74f8 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 09:45:43 +0800
Subject: [PATCH 57/66] Update msbuild.yml
---
.github/workflows/msbuild.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 86027cb..f720de4 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -21,7 +21,8 @@ jobs:
platform: [x86 ,x64]
runs-on: windows-latest # 最新的 Windows 环境
-
+ env:
+ ACTIONS_STEP_DEBUG: true
steps:
# 检出您的主仓库代码
- name: Checkout main repository code
@@ -93,10 +94,7 @@ jobs:
#编译
- name: Build Solution
run: msbuild XEngine_Source/XEngine.sln /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }}
- - name: Enable debug mode
- run: |
- echo "Enabling debug mode..."
- echo "ACTIONS_STEP_DEBUG=true" >> $GITHUB_ENV
+
#测试
- name: Conditional Step for x86 Release
if: matrix.configuration == 'Release' && matrix.platform == 'x86'
--
Gitee
From f4de6186967277576930ae689c0343dd9e4cf572 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 10:25:48 +0800
Subject: [PATCH 58/66] ls file
---
.github/workflows/msbuild.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index f720de4..6ecdcfa 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -104,6 +104,7 @@ jobs:
cp -r XEngine_Source/VSCopy_x86.bat XEngine_Release/
cd XEngine_Release
./VSCopy_x86.bat
+ ls
./XEngine_HttpApp.exe -t
- name: Conditional Step for x64 Release
if: matrix.configuration == 'Release' && matrix.platform == 'x64'
@@ -113,6 +114,7 @@ jobs:
cp -r XEngine_Source/VSCopy_x64.bat XEngine_Release/
cd XEngine_Release
./VSCopy_x64.bat
+ ls
./XEngine_HttpApp.exe -t
shell: pwsh
--
Gitee
From de084fd3ac7832de635f51cc5a83b17240b382a2 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 10:31:43 +0800
Subject: [PATCH 59/66] fixed:vs copy file
---
XEngine_Source/VSCopy_Debug.bat | 2 ++
XEngine_Source/VSCopy_x64.bat | 6 ++++--
XEngine_Source/VSCopy_x86.bat | 2 ++
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/XEngine_Source/VSCopy_Debug.bat b/XEngine_Source/VSCopy_Debug.bat
index 1e28ada..6418e1a 100644
--- a/XEngine_Source/VSCopy_Debug.bat
+++ b/XEngine_Source/VSCopy_Debug.bat
@@ -10,6 +10,8 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_Stream.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_Socket.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_XSocket.dll" "./"
+copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIAddr.dll" "./"
+copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIHelp.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_SystemApi.dll" "./"
copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_DataBase.dll" "./"
diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat
index 5c7f094..013bd93 100644
--- a/XEngine_Source/VSCopy_x64.bat
+++ b/XEngine_Source/VSCopy_x64.bat
@@ -7,9 +7,11 @@ copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_Cryption.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_Client\XClient_APIHelp.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_Client\XClient_Stream.dll" "./"
-copy /y "%XEngine_Lib32%\XEngine_Client\XClient_Socket.dll" "./"
+copy /y "%XEngine_Lib64%\XEngine_Client\XClient_Socket.dll" "./"
-copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_XSocket.dll" "./"
+copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./"
+copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./"
+copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./"
copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./"
diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat
index d02822a..5434dcc 100644
--- a/XEngine_Source/VSCopy_x86.bat
+++ b/XEngine_Source/VSCopy_x86.bat
@@ -10,6 +10,8 @@ copy /y "%XEngine_Lib32%\XEngine_Client\XClient_Stream.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_Client\XClient_Socket.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_XSocket.dll" "./"
+copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./"
+copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./"
copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./"
--
Gitee
From b3855af11e0e2db87e6d16468c2043d64343f9ed Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 12:23:03 +0800
Subject: [PATCH 60/66] Update msbuild.yml
---
.github/workflows/msbuild.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 6ecdcfa..0b60715 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -115,7 +115,8 @@ jobs:
cd XEngine_Release
./VSCopy_x64.bat
ls
- ./XEngine_HttpApp.exe -t
+ ./XEngine_HttpApp.exe -t > output.log 2>&1
+ cat output.log
shell: pwsh
- name: Upload folder as artifact with x86
--
Gitee
From b4c41c28aaa102a2bf9968290a0405c623600118 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 13:45:33 +0800
Subject: [PATCH 61/66] Update msbuild.yml
---
.github/workflows/msbuild.yml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml
index 0b60715..cd5c468 100644
--- a/.github/workflows/msbuild.yml
+++ b/.github/workflows/msbuild.yml
@@ -104,7 +104,6 @@ jobs:
cp -r XEngine_Source/VSCopy_x86.bat XEngine_Release/
cd XEngine_Release
./VSCopy_x86.bat
- ls
./XEngine_HttpApp.exe -t
- name: Conditional Step for x64 Release
if: matrix.configuration == 'Release' && matrix.platform == 'x64'
@@ -114,9 +113,6 @@ jobs:
cp -r XEngine_Source/VSCopy_x64.bat XEngine_Release/
cd XEngine_Release
./VSCopy_x64.bat
- ls
- ./XEngine_HttpApp.exe -t > output.log 2>&1
- cat output.log
shell: pwsh
- name: Upload folder as artifact with x86
--
Gitee
From 7ef5ac0c0fbfd13d206054cf11a65861a61f2548 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 15:03:24 +0800
Subject: [PATCH 62/66] update:match xengine v9.x for example
---
.../APPClient_BackExample/APPClient_BackExample.cpp | 2 +-
.../APPClient_BankExample/APPClient_BankExample.cpp | 2 +-
.../APPClient_DTestExample.cpp | 2 +-
.../APPClient_DeamonExample.cpp | 2 +-
.../APPClient_IDExample/APPClient_IDExample.cpp | 4 ++--
.../APPClient_IPExample/APPClient_IPExample.cpp | 4 ++--
.../APPClient_ImageExample.cpp | 6 +++---
.../APPClient_LanguageExample.cpp | 2 +-
.../APPClient_LibPluginExample.cpp | 8 ++++----
.../APPClient_LockExample/APPClient_LockExample.cpp | 12 ++++++------
.../APPClient_LuaPluginExample.cpp | 2 +-
.../APPClient_MachineExample.cpp | 6 +++---
.../APPClient_OilQuery/APPClient_OilQuery.cpp | 2 +-
.../APPClient_P2PExample/APPClient_P2PExample.cpp | 12 ++++++------
.../APPClient_PhoneExample.cpp | 2 +-
.../APPClient_QRExample/APPClient_QRExample.cpp | 4 ++--
.../APPClient_SLinkExample.cpp | 8 ++++----
.../APPClient_SocketExample.cpp | 4 ++--
.../APPClient_TranslationExample.cpp | 2 +-
.../APPClient_WordFilter/APPClient_WordFilter.cpp | 8 ++++----
.../APPClient_XLogExample/APPClient_XLogExample.cpp | 10 +++++-----
.../APPClient_ZIPCodeExample.cpp | 4 ++--
22 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/XEngine_APPClient/APPClient_BackExample/APPClient_BackExample.cpp b/XEngine_APPClient/APPClient_BackExample/APPClient_BackExample.cpp
index 3e388d6..228e4f9 100644
--- a/XEngine_APPClient/APPClient_BackExample/APPClient_BackExample.cpp
+++ b/XEngine_APPClient/APPClient_BackExample/APPClient_BackExample.cpp
@@ -40,7 +40,7 @@ int test_query()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp b/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp
index 3914bc4..04ce866 100644
--- a/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp
+++ b/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp
@@ -37,7 +37,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp
index 65f27e5..6bc3592 100644
--- a/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp
+++ b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp
@@ -37,7 +37,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_DeamonExample/APPClient_DeamonExample.cpp b/XEngine_APPClient/APPClient_DeamonExample/APPClient_DeamonExample.cpp
index 88e83dc..2cd417d 100644
--- a/XEngine_APPClient/APPClient_DeamonExample/APPClient_DeamonExample.cpp
+++ b/XEngine_APPClient/APPClient_DeamonExample/APPClient_DeamonExample.cpp
@@ -43,7 +43,7 @@ int test_insert()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp b/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp
index f51ad93..b1c0c63 100644
--- a/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp
+++ b/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp
@@ -38,13 +38,13 @@ int main()
}
#ifdef _MSC_BUILD
XCHAR tszGBKBuffer[1024] = {};
- BaseLib_OperatorCharset_UTFToAnsi(ptszMsgBuffer, tszGBKBuffer, &nLen);
+ BaseLib_Charset_UTFToAnsi(ptszMsgBuffer, tszGBKBuffer, &nLen);
printf("接受到数据,大小:%d,内容:%s\n", nLen, tszGBKBuffer);
#else
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
#endif
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp b/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp
index 0c6146a..39e96b0 100644
--- a/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp
+++ b/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp
@@ -39,9 +39,9 @@ int main()
XCHAR tszMsgBuffer[2048];
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
- BaseLib_OperatorCharset_UTFToAnsi(ptszMsgBuffer, tszMsgBuffer, &nLen);
+ BaseLib_Charset_UTFToAnsi(ptszMsgBuffer, tszMsgBuffer, &nLen);
printf("接受到数据,大小:%d,内容:%s\n", nLen, tszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_ImageExample/APPClient_ImageExample.cpp b/XEngine_APPClient/APPClient_ImageExample/APPClient_ImageExample.cpp
index 9a794e2..787b714 100644
--- a/XEngine_APPClient/APPClient_ImageExample/APPClient_ImageExample.cpp
+++ b/XEngine_APPClient/APPClient_ImageExample/APPClient_ImageExample.cpp
@@ -49,7 +49,7 @@ bool APPClient_ImageExample_GetAttr(LPCXSTR lpszMsgBuffer, int nMsgLen, int* pIn
printf("json parse failed\n");
return false;
}
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
Json::Value st_JsonBase = st_JsonRoot["st_BaseInfo"];
*pInt_Width = st_JsonBase["nWidth"].asInt();
@@ -85,7 +85,7 @@ int test_imgzoom()
XCHAR tszAPIUrl[MAX_PATH] = {};
XCHAR tszFileExt[64] = {};
- BaseLib_OperatorString_GetFileAndPath(pptszListFile[i], NULL, NULL, NULL, tszFileExt);
+ BaseLib_String_GetFileAndPath(pptszListFile[i], NULL, NULL, NULL, tszFileExt);
_xstprintf(tszAPIUrl, _X("http://127.0.0.1:5501/api?function=image&type=1&ext=%s&width=%d&height=%d"), tszFileExt, nWidth / 2, nHeight / 2);
XCHAR* ptszMsgBuffer = NULL;
@@ -100,7 +100,7 @@ int test_imgzoom()
fwrite(ptszMsgBuffer, 1, nRet, pSt_File);
fclose(pSt_File);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
}
return 0;
}
diff --git a/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp b/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp
index 6f01244..dc35640 100644
--- a/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp
+++ b/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp
@@ -37,7 +37,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp b/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp
index 32a33cf..6b36951 100644
--- a/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp
+++ b/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp
@@ -35,7 +35,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
LPCXSTR lpszZodiacUrl = _X("http://127.0.0.1:5501/api?function=zodiac¶ms1=19880121");
if (!APIClient_Http_Request(_X("GET"), lpszZodiacUrl, NULL, NULL, &ptszMsgBuffer, &nLen))
@@ -44,7 +44,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
LPCXSTR lpszTimeUrl = _X("http://127.0.0.1:5501/api?function=timezone¶ms1=1¶ms2=1-20");
if (!APIClient_Http_Request(_X("GET"), lpszTimeUrl, NULL, NULL, &ptszMsgBuffer, &nLen))
@@ -53,7 +53,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
LPCXSTR lpszBmiUrl = _X("http://127.0.0.1:5501/api?function=bmindex¶ms1=1.78¶ms2=62");
if (!APIClient_Http_Request(_X("GET"), lpszBmiUrl, NULL, NULL, &ptszMsgBuffer, &nLen))
@@ -62,7 +62,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
#endif
diff --git a/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp b/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp
index 0e8f80d..c644033 100644
--- a/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp
+++ b/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp
@@ -36,7 +36,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBuffer);
//打开读锁
LPCXSTR lpszReadUrl = _X("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=3");
if (!APIClient_Http_Request(_X("GET"), lpszReadUrl, NULL, NULL, &ptszBuffer, &nLen))
@@ -45,7 +45,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBuffer);
//打开写锁
LPCXSTR lpszWriteUrl = _X("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=5");
if (!APIClient_Http_Request(_X("GET"), lpszWriteUrl, NULL, NULL, &ptszBuffer, &nLen))
@@ -54,7 +54,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBuffer);
//释放读锁
LPCXSTR lpszUNReadUrl = _X("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=4");
if (!APIClient_Http_Request(_X("GET"), lpszUNReadUrl, NULL, NULL, &ptszBuffer, &nLen))
@@ -63,7 +63,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBuffer);
//打开解锁
if (!APIClient_Http_Request(_X("GET"), lpszWriteUrl, NULL, NULL, &ptszBuffer, &nLen))
{
@@ -71,7 +71,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBuffer);
//关闭
LPCXSTR lpszCloseUrl = _X("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=2");
if (!APIClient_Http_Request(_X("GET"), lpszCloseUrl, NULL, NULL, &ptszBuffer, &nLen))
@@ -80,7 +80,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBuffer);
#ifdef _MSC_BUILD
WSACleanup();
#endif
diff --git a/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp b/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp
index f770506..1e44cb1 100644
--- a/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp
+++ b/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp
@@ -35,7 +35,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
getchar();
#ifdef _MSC_BUILD
diff --git a/XEngine_APPClient/APPClient_MachineExample/APPClient_MachineExample.cpp b/XEngine_APPClient/APPClient_MachineExample/APPClient_MachineExample.cpp
index ddd9d6c..3f9b45c 100644
--- a/XEngine_APPClient/APPClient_MachineExample/APPClient_MachineExample.cpp
+++ b/XEngine_APPClient/APPClient_MachineExample/APPClient_MachineExample.cpp
@@ -59,7 +59,7 @@ int test_insert()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -76,7 +76,7 @@ int test_list()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -100,7 +100,7 @@ int test_delete()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_OilQuery/APPClient_OilQuery.cpp b/XEngine_APPClient/APPClient_OilQuery/APPClient_OilQuery.cpp
index c3e11e7..a90dd6b 100644
--- a/XEngine_APPClient/APPClient_OilQuery/APPClient_OilQuery.cpp
+++ b/XEngine_APPClient/APPClient_OilQuery/APPClient_OilQuery.cpp
@@ -38,7 +38,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp b/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp
index f9ba215..554e0bd 100644
--- a/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp
+++ b/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp
@@ -46,7 +46,7 @@ BOOL APIHelp_NetWork_GetIPNet(XCHAR* ptszIPAddr)
return FALSE;
}
memcpy(ptszIPAddr, ptszBody, nBLen - 1);
- BaseLib_OperatorMemory_FreeCStyle((VOID**)&ptszBody);
+ BaseLib_Memory_FreeCStyle((VOID**)&ptszBody);
return TRUE;
}
int APPClient_P2XPLogin()
@@ -72,7 +72,7 @@ int APPClient_P2XPLogin()
}
//得到IP地址
strcpy(tszPrivateAddr, ppSt_APICard[0]->tszIPAddr);
- BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_APICard, nListCount);
+ BaseLib_Memory_Free((XPPPMEM)&ppSt_APICard, nListCount);
st_JsonRoot["tszUserName"] = lpszUserName;
st_JsonRoot["tszPrivateAddr"] = tszPrivateAddr;
@@ -88,7 +88,7 @@ int APPClient_P2XPLogin()
return -1;
}
printf("APPClient_P2XPLogin,&nMsgLen:%d,%s\n", nMsgLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -109,7 +109,7 @@ int APPClient_P2XPList()
return -1;
}
printf("APPClient_P2XPList,&nMsgLen:%d,%s\n", nMsgLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -126,7 +126,7 @@ int APPClient_P2XPWan()
return -1;
}
printf("APPClient_P2XPWan,&nMsgLen:%d,%s\n", nMsgLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -147,7 +147,7 @@ int APPClient_P2XPLogout()
return -1;
}
printf("APPClient_P2XPLogout,&nMsgLen:%d,%s\n", nMsgLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp b/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp
index c74fbfe..005fc58 100644
--- a/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp
+++ b/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp
@@ -37,7 +37,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp b/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp
index 649aed3..d998744 100644
--- a/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp
+++ b/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp
@@ -49,7 +49,7 @@ int test_create()
fclose(pSt_File);
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -73,7 +73,7 @@ int test_parse()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nRet, ptszBodyBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszBodyBuffer);
}
return 0;
}
diff --git a/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp
index 29e047f..3187d07 100644
--- a/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp
+++ b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp
@@ -44,7 +44,7 @@ int test_create()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
int test_get()
@@ -62,7 +62,7 @@ int test_get()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
int test_List()
@@ -78,7 +78,7 @@ int test_List()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
int test_delete()
@@ -96,7 +96,7 @@ int test_delete()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp
index 23b876f..ea25df7 100644
--- a/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp
+++ b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp
@@ -65,7 +65,7 @@ int test_create()
{
xhToken = st_JsonObject["xhToken"].asInt64();
}
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
int test_delete()
@@ -85,7 +85,7 @@ int test_delete()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp b/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp
index 6e3a86b..4ea5f67 100644
--- a/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp
+++ b/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp
@@ -36,7 +36,7 @@ int main()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
diff --git a/XEngine_APPClient/APPClient_WordFilter/APPClient_WordFilter.cpp b/XEngine_APPClient/APPClient_WordFilter/APPClient_WordFilter.cpp
index 46912fd..dbb17f2 100644
--- a/XEngine_APPClient/APPClient_WordFilter/APPClient_WordFilter.cpp
+++ b/XEngine_APPClient/APPClient_WordFilter/APPClient_WordFilter.cpp
@@ -45,7 +45,7 @@ int test_insert()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -65,7 +65,7 @@ int test_query()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -82,7 +82,7 @@ int test_List()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -102,7 +102,7 @@ int test_delete()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp b/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp
index 355ca2e..beaa61b 100644
--- a/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp
+++ b/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp
@@ -40,7 +40,7 @@ int test_create()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -72,7 +72,7 @@ int test_insert()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -94,7 +94,7 @@ int test_query()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -113,7 +113,7 @@ int test_list()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
@@ -133,7 +133,7 @@ int test_delete()
return 0;
}
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
return 0;
}
diff --git a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp
index 7e7987c..cf1588e 100644
--- a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp
+++ b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp
@@ -45,12 +45,12 @@ int main()
return 0;
}
#ifdef _MSC_BUILD
- BaseLib_OperatorCharset_UTFToAnsi(ptszMsgBuffer, tszMsgBuffer, &nLen);
+ BaseLib_Charset_UTFToAnsi(ptszMsgBuffer, tszMsgBuffer, &nLen);
printf("接受到数据,大小:%d,内容:%s\n", nLen, tszMsgBuffer);
#else
printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer);
#endif
- BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
+ BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
#ifdef _MSC_BUILD
WSACleanup();
--
Gitee
From 3fc82155477256bf6223e284e25fe39dc393c518 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Fri, 27 Dec 2024 15:09:44 +0800
Subject: [PATCH 63/66] modify:keepfile added
---
XEngine_Release/XEngine_Config/XEngine_Config.json | 4 ++--
XEngine_Release/XEngine_Config/XEngine_VersionConfig.json | 1 +
XEngine_Release/XEngine_Coredump/.gitignore | 0
XEngine_Release/XEngine_Coredump/keepfile | 1 +
XEngine_Release/XEngine_LibPlugin/.gitignore | 0
XEngine_Release/XEngine_LibPlugin/keepfile | 1 +
XEngine_Release/XEngine_Log/.gitignore | 0
XEngine_Release/XEngine_Log/keepfile | 1 +
8 files changed, 6 insertions(+), 2 deletions(-)
delete mode 100644 XEngine_Release/XEngine_Coredump/.gitignore
create mode 100644 XEngine_Release/XEngine_Coredump/keepfile
delete mode 100644 XEngine_Release/XEngine_LibPlugin/.gitignore
create mode 100644 XEngine_Release/XEngine_LibPlugin/keepfile
delete mode 100644 XEngine_Release/XEngine_Log/.gitignore
create mode 100644 XEngine_Release/XEngine_Log/keepfile
diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json
index 35cedb8..c5754d3 100644
--- a/XEngine_Release/XEngine_Config/XEngine_Config.json
+++ b/XEngine_Release/XEngine_Config/XEngine_Config.json
@@ -25,10 +25,10 @@
},
"XSql":{
"bEnable":true,
- "SQLAddr":"10.0.3.154",
+ "SQLAddr":"10.0.2.6",
"SQLPort":3306,
"SQLUser":"root",
- "SQLPass":"123123"
+ "SQLPass":"123123aa"
},
"XApi":{
"tszWeatherUrl":"https://restapi.amap.com/v3/weather/weatherInfo?city=%s&key=3239fc302d6480ce49973f4d1c59e5d8",
diff --git a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
index 3198aa8..ddf6ed5 100644
--- a/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
+++ b/XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
@@ -1,5 +1,6 @@
{
"XVer":[
+ "3.8.0.1001 Build20241227",
"3.7.0.1001 Build20240927",
"3.6.0.1001 Build20240705",
"3.5.0.1001 Build20240510",
diff --git a/XEngine_Release/XEngine_Coredump/.gitignore b/XEngine_Release/XEngine_Coredump/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/XEngine_Release/XEngine_Coredump/keepfile b/XEngine_Release/XEngine_Coredump/keepfile
new file mode 100644
index 0000000..34d1f89
--- /dev/null
+++ b/XEngine_Release/XEngine_Coredump/keepfile
@@ -0,0 +1 @@
+keepfile
\ No newline at end of file
diff --git a/XEngine_Release/XEngine_LibPlugin/.gitignore b/XEngine_Release/XEngine_LibPlugin/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/XEngine_Release/XEngine_LibPlugin/keepfile b/XEngine_Release/XEngine_LibPlugin/keepfile
new file mode 100644
index 0000000..34d1f89
--- /dev/null
+++ b/XEngine_Release/XEngine_LibPlugin/keepfile
@@ -0,0 +1 @@
+keepfile
\ No newline at end of file
diff --git a/XEngine_Release/XEngine_Log/.gitignore b/XEngine_Release/XEngine_Log/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/XEngine_Release/XEngine_Log/keepfile b/XEngine_Release/XEngine_Log/keepfile
new file mode 100644
index 0000000..34d1f89
--- /dev/null
+++ b/XEngine_Release/XEngine_Log/keepfile
@@ -0,0 +1 @@
+keepfile
\ No newline at end of file
--
Gitee
From 98afb97c1666a904d5cda0d78695f83500c55554 Mon Sep 17 00:00:00 2001
From: qyt <486179@qq.com>
Date: Mon, 30 Dec 2024 09:54:37 +0800
Subject: [PATCH 64/66] update:read me and document
---
README.en.md | 28 ++++++++++++++--------------
README.md | 24 ++++++++++++++----------
XEngine_Docment/Docment_en.docx | Bin 169896 -> 170290 bytes
XEngine_Docment/Docment_zh.docx | Bin 178298 -> 178561 bytes
4 files changed, 28 insertions(+), 24 deletions(-)
diff --git a/README.en.md b/README.en.md
index 2625232..78b85a8 100644
--- a/README.en.md
+++ b/README.en.md
@@ -15,8 +15,10 @@ The purpose of development and implementation based on libXEngine is a cross-pla
and support plugin system,dll(so,dylib)module or lua script
#### Why choose us
-
-Support privatization deployment, free, safe, open source, controllable
+Support privatization deployment, free, safe, open source, controllable
+Dozens of information queries are completely free and open source, while similar products are all charged for API counting.
+Supports third-party interface data caching. It can save you the cost of other query information.
+It allows you to save 90% of information service costs in a year.
## Software feature
1. permission verication
@@ -55,11 +57,12 @@ Support privatization deployment, free, safe, open source, controllable
34. STUN NAT Protocol
35. NTP Time Sync Protocol
36. mac address vendor query
+37. ORC Get TEXT With image
## install
#### XEngine Evn
-you must install XEngine,need V8.x or above,install XEngine can be refer to xengine Readme docment
+you must install XEngine,need V9.x or above,install XEngine can be refer to xengine Readme docment
GITEE:https://gitee.com/libxengine/libxengine
GITHUB:https://github.com/libxengine/libxengine
@@ -86,7 +89,7 @@ git submodule update
#### Linux
ubuntu:sudo apt install sudo apt install liblua5.4-dev libopencv-dev libopencv-contrib-dev libqrencode-dev
centos:compile by self
-use makefile compile,UBUNTU22.04 x64 or RockyLinux 9 x64
+use makefile compile,UBUNTU24.04 x64 or RockyLinux 9 x64
Run it on the terminal
#### Macos
@@ -129,20 +132,17 @@ information report
You can refer to the project under XEngine_PluginModule to write the plugin
The written plugin needs to be configured via JSON to be enabled
-## Test Server
-Address:app.xyry.org,Port:5501
-
## now task
## other problems
You can refer to the document under the docment directory. It contains API protocol and service description.
## Test Service
-Address:app.xyry.org,Port:5501
+Address:app.libxengine.com,Port:5501
#### example
For more information please refer to the documentation
id information query
-api:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000
+api:http://app.libxengine.com:5501/api?function=id¶ms1=511025198800000000
```json
{
"code":0,
@@ -162,7 +162,7 @@ api:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000
}
```
bank card ver
-api:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000
+api:http://app.libxengine.com:5501/api?function=bank¶ms1=6214832830000000
```json
{
"code":0,
@@ -190,7 +190,7 @@ api:http://127.0.0.1:5501/api?function=translation&msg=中文翻译成英文&src
}
```
Distributed Lock
-Api:http://app.xyry.org:5501/api?function=lock¶ms1=1000154321¶ms2=1
+Api:http://app.libxengine.com:5501/api?function=lock¶ms1=1000154321¶ms2=1
```json
{
"code":0,
@@ -201,14 +201,14 @@ Api:http://app.xyry.org:5501/api?function=lock¶ms1=1000154321¶ms2=1
}
```
ZIPCode
-Api:http://app.xyry.org:5501/api?function=zipcode¶ms1=0
+Api:http://app.libxengine.com:5501/api?function=zipcode¶ms1=0
```json
{
"nZipCode":100010
}
```
Log
-Api:http://app.xyry.org:5501/api?function=log¶ms1=1
+Api:http://app.libxengine.com:5501/api?function=log¶ms1=1
```json
{
"tszTableName":"xengine",
@@ -222,7 +222,7 @@ Api:http://app.xyry.org:5501/api?function=log¶ms1=1
}
```
Oil Query
-API:http://app.xyry.org:5501/api?function=oil&addr=四川
+API:http://app.libxengine.com:5501/api?function=oil&addr=四川
```json
{
"code": 0,
diff --git a/README.md b/README.md
index dd64361..56d119a 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,10 @@ c c++ interface api service
编译发布版本将只在github上面发布.
#### 为什么选择我们
-支持私有化部署,免费,安全.开源,可控
+支持私有化部署,免费,安全.开源,可控
+几十种信息查询完全免费开源,而同类型产品全是收费API计数收费
+支持三方接口数据缓存.可以节约你的其他查询信息费用
+可以让你一年节约90%信息服务费用.
## 软件特性
1. 权限验证
@@ -57,11 +60,12 @@ c c++ interface api service
34. STUN NAT协议
35. NTP时间同步协议
36. 支持MAC地址厂商查询
+37. ORC图像文本提取
## 安装教程
#### XEngine环境
-必须安装XEngine,版本需要V8.x或者以上版本,安装XEngine可以参考其Readme文档
+必须安装XEngine,版本需要V9.x或者以上版本,安装XEngine可以参考其Readme文档
GITEE:https://gitee.com/libxengine/libxengine
GITHUB:https://github.com/libxengine/libxengine
@@ -92,7 +96,7 @@ git clone https://gitee.com/xengine/XEngine_PhoneData.git XEngine_Source/XEngine
#### Linux
ubuntu:sudo apt install liblua5.4-dev libopencv-dev libopencv-contrib-dev libqrencode-dev
centos:需要自己编译
-Linux使用Makefile编译,UBUNTU22.04 x64或者RockyLinux 9 x64
+Linux使用Makefile编译,UBUNTU24.04 x64或者RockyLinux 9 x64
在控制台运行
#### Macos
@@ -145,12 +149,12 @@ make FLAGS=CleanAll 清理编译
你也可以观看视频教程来了解我们的代码框架情况:https://www.bilibili.com/video/BV13z421d7W8
## 测试服务器
-地址:app.xyry.org,端口:5501
+地址:app.libxengine.com,端口:5501
#### 测试接口示例
更多内容请参考文档
身份证查询
-接口:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000
+接口:http://app.libxengine.com:5501/api?function=id¶ms1=511025198800000000
```json
{
"code":0,
@@ -170,7 +174,7 @@ make FLAGS=CleanAll 清理编译
}
```
银行卡验证
-接口:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000
+接口:http://app.libxengine.com:5501/api?function=bank¶ms1=6214832830000000
```json
{
"code":0,
@@ -198,7 +202,7 @@ make FLAGS=CleanAll 清理编译
}
```
分布式锁
-接口:http://app.xyry.org:5501/api?function=lock¶ms1=1000154321¶ms2=1
+接口:http://app.libxengine.com:5501/api?function=lock¶ms1=1000154321¶ms2=1
```json
{
"code":0,
@@ -209,14 +213,14 @@ make FLAGS=CleanAll 清理编译
}
```
行政邮编
-接口:http://app.xyry.org:5501/api?function=zipcode¶ms1=0
+接口:http://app.libxengine.com:5501/api?function=zipcode¶ms1=0
```json
{
"nZipCode":100010
}
```
日志操作
-接口:http://app.xyry.org:5501/api?function=log¶ms1=1
+接口:http://app.libxengine.com:5501/api?function=log¶ms1=1
```json
{
"tszTableName":"xengine",
@@ -230,7 +234,7 @@ make FLAGS=CleanAll 清理编译
}
```
油价查询
-接口:http://app.xyry.org:5501/api?function=oil&addr=四川
+接口:http://app.libxengine.com:5501/api?function=oil&addr=四川
```json
{
"code": 0,
diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx
index 75e92e03486ffebabb7b0bc7452d7fab8e7017d5..1011bf837b82bf516d95469e9b8676737c06c89f 100644
GIT binary patch
delta 155779
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