From f891b1a585e1a5dae914e19dcb0e44c87277b9cd Mon Sep 17 00:00:00 2001
From: yuanyuanxiang <962914132@qq.com>
Date: Sat, 29 Nov 2025 10:32:35 +0100
Subject: [PATCH] Fix registry error and use [MT] to rebuild zlib, x264 and
libyuv
---
client/ClientDll_vs2015.vcxproj | 1 +
client/clang_rt_compat.c | 39 ++++++++++
client/ghost_vs2015.vcxproj | 1 +
common/iniFile.h | 122 ++++++++++++++++++++++++++++----
compress/libyuv/libyuv_x64.lib | Bin 1047280 -> 1046836 bytes
compress/x264/libx264.lib | Bin 7540028 -> 14520178 bytes
compress/x264/libx264_x64.lib | Bin 7784560 -> 14992914 bytes
compress/zlib/zlib_x64.lib | Bin 178484 -> 178160 bytes
server/2015Remote/BuildDlg.cpp | 2 +-
9 files changed, 149 insertions(+), 16 deletions(-)
create mode 100644 client/clang_rt_compat.c
diff --git a/client/ClientDll_vs2015.vcxproj b/client/ClientDll_vs2015.vcxproj
index cff5f62..b3d28db 100644
--- a/client/ClientDll_vs2015.vcxproj
+++ b/client/ClientDll_vs2015.vcxproj
@@ -168,6 +168,7 @@
+
diff --git a/client/clang_rt_compat.c b/client/clang_rt_compat.c
new file mode 100644
index 0000000..94e083c
--- /dev/null
+++ b/client/clang_rt_compat.c
@@ -0,0 +1,39 @@
+// clang_rt_compat.c
+// 兼容 32 位 Clang 编译的 libx264 运行时函数
+
+#ifdef _M_IX86
+
+#pragma comment(linker, "/alternatename:__ultof3=_ultof3_impl")
+#pragma comment(linker, "/alternatename:__dtoul3_legacy=_dtoul3_impl")
+#pragma comment(linker, "/alternatename:__dtol3=_dtol3_impl")
+#pragma comment(linker, "/alternatename:__ltod3=_ltod3_impl")
+#pragma comment(linker, "/alternatename:__ultod3=_ultod3_impl")
+
+// unsigned long long to float
+float __cdecl ultof3_impl(unsigned long long a) {
+ return (float)a;
+}
+
+// double to unsigned long long
+unsigned long long __cdecl dtoul3_impl(double a) {
+ if (a < 0) return 0;
+ if (a >= 18446744073709551616.0) return 0xFFFFFFFFFFFFFFFFULL;
+ return (unsigned long long)a;
+}
+
+// double to long long
+long long __cdecl dtol3_impl(double a) {
+ return (long long)a;
+}
+
+// long long to double
+double __cdecl ltod3_impl(long long a) {
+ return (double)a;
+}
+
+// unsigned long long to double
+double __cdecl ultod3_impl(unsigned long long a) {
+ return (double)a;
+}
+
+#endif
diff --git a/client/ghost_vs2015.vcxproj b/client/ghost_vs2015.vcxproj
index 764ac56..379fcb7 100644
--- a/client/ghost_vs2015.vcxproj
+++ b/client/ghost_vs2015.vcxproj
@@ -178,6 +178,7 @@
+
diff --git a/common/iniFile.h b/common/iniFile.h
index 2f20a2b..d4a6f1f 100644
--- a/common/iniFile.h
+++ b/common/iniFile.h
@@ -5,7 +5,93 @@
#define YAMA_PATH "Software\\YAMA"
#define CLIENT_PATH "Software\\ServerD11"
-// öȡ: ļ.
+#define NO_CURRENTKEY 1
+
+#if NO_CURRENTKEY
+#include
+#include
+#pragma comment(lib, "wtsapi32.lib")
+
+// 获取当前会话用户的注册表根键
+// SYSTEM 进程无法使用 HKEY_CURRENT_USER,需要通过 HKEY_USERS\ 访问
+// 返回的 HKEY 需要调用者在使用完毕后调用 RegCloseKey 关闭
+inline HKEY GetCurrentUserRegistryKey()
+{
+ HKEY hUserKey = NULL;
+ // 获取当前进程的会话 ID
+ DWORD sessionId = 0;
+ ProcessIdToSessionId(GetCurrentProcessId(), &sessionId);
+
+ // 获取该会话的用户令牌
+ HANDLE hUserToken = NULL;
+ if (!WTSQueryUserToken(sessionId, &hUserToken)) {
+ // 如果失败(可能不是服务进程),回退到 HKEY_CURRENT_USER
+ return HKEY_CURRENT_USER;
+ }
+
+ // 获取令牌中的用户信息大小
+ DWORD dwSize = 0;
+ GetTokenInformation(hUserToken, TokenUser, NULL, 0, &dwSize);
+ if (dwSize == 0) {
+ CloseHandle(hUserToken);
+ return HKEY_CURRENT_USER;
+ }
+
+ // 分配内存并获取用户信息
+ TOKEN_USER* pTokenUser = (TOKEN_USER*)malloc(dwSize);
+ if (!pTokenUser) {
+ CloseHandle(hUserToken);
+ return HKEY_CURRENT_USER;
+ }
+
+ if (!GetTokenInformation(hUserToken, TokenUser, pTokenUser, dwSize, &dwSize)) {
+ free(pTokenUser);
+ CloseHandle(hUserToken);
+ return HKEY_CURRENT_USER;
+ }
+
+ // 将 SID 转换为字符串
+ LPSTR szSid = NULL;
+ if (!ConvertSidToStringSidA(pTokenUser->User.Sid, &szSid)) {
+ free(pTokenUser);
+ CloseHandle(hUserToken);
+ return HKEY_CURRENT_USER;
+ }
+
+ // 打开 HKEY_USERS\
+ if (RegOpenKeyExA(HKEY_USERS, szSid, 0, KEY_READ | KEY_WRITE, &hUserKey) != ERROR_SUCCESS) {
+ // 尝试只读方式
+ if (RegOpenKeyExA(HKEY_USERS, szSid, 0, KEY_READ, &hUserKey) != ERROR_SUCCESS) {
+ hUserKey = NULL;
+ }
+ }
+
+ LocalFree(szSid);
+ free(pTokenUser);
+ CloseHandle(hUserToken);
+
+ return hUserKey ? hUserKey : HKEY_CURRENT_USER;
+}
+
+// 检查是否需要关闭注册表根键(非预定义键需要关闭)
+inline void CloseUserRegistryKeyIfNeeded(HKEY hKey)
+{
+ if (hKey != HKEY_CURRENT_USER &&
+ hKey != HKEY_LOCAL_MACHINE &&
+ hKey != HKEY_USERS &&
+ hKey != HKEY_CLASSES_ROOT &&
+ hKey != NULL) {
+ RegCloseKey(hKey);
+ }
+}
+
+#else
+#define GetCurrentUserRegistryKey() HKEY_CURRENT_USER
+#define CloseUserRegistryKeyIfNeeded(hKey)
+#endif
+
+
+// 配置读取类: 文件配置.
class config
{
private:
@@ -29,7 +115,7 @@ public:
return ::GetPrivateProfileIntA(MainKey.c_str(), SubKey.c_str(), nDef, m_IniFilePath);
}
- // ȡеĵһ
+ // 获取配置项中的第一个整数
virtual int Get1Int(const std::string& MainKey, const std::string& SubKey, char ch=';', int nDef=0)
{
std::string s = GetStr(MainKey, SubKey, "");
@@ -56,7 +142,7 @@ public:
}
};
-// öȡ: ע.
+// 配置读取类: 注册表配置.
class iniFile : public config
{
private:
@@ -64,21 +150,24 @@ private:
std::string m_SubKeyPath;
public:
- ~iniFile() {}
+ ~iniFile()
+ {
+ CloseUserRegistryKeyIfNeeded(m_hRootKey);
+ }
iniFile(const std::string& path = YAMA_PATH)
{
- m_hRootKey = HKEY_CURRENT_USER;
+ m_hRootKey = GetCurrentUserRegistryKey();
m_SubKeyPath = path;
}
- // дʵдΪַ
+ // 写入整数,实际写为字符串
bool SetInt(const std::string& MainKey, const std::string& SubKey, int Data) override
{
return SetStr(MainKey, SubKey, std::to_string(Data));
}
- // дַ
+ // 写入字符串
bool SetStr(const std::string& MainKey, const std::string& SubKey, const std::string& Data) override
{
std::string fullPath = m_SubKeyPath + "\\" + MainKey;
@@ -93,7 +182,7 @@ public:
return bRet;
}
- // ȡַ
+ // 读取字符串
std::string GetStr(const std::string& MainKey, const std::string& SubKey, const std::string& def = "") override
{
std::string fullPath = m_SubKeyPath + "\\" + MainKey;
@@ -113,7 +202,7 @@ public:
return result;
}
- // ȡȴַת
+ // 读取整数,先从字符串中转换
int GetInt(const std::string& MainKey, const std::string& SubKey, int defVal = 0) override
{
std::string val = GetStr(MainKey, SubKey);
@@ -135,27 +224,30 @@ private:
std::string m_SubKeyPath;
public:
- ~binFile() {}
+ ~binFile()
+ {
+ CloseUserRegistryKeyIfNeeded(m_hRootKey);
+ }
binFile(const std::string& path = CLIENT_PATH)
{
- m_hRootKey = HKEY_CURRENT_USER;
+ m_hRootKey = GetCurrentUserRegistryKey();
m_SubKeyPath = path;
}
- // ддΪƣ
+ // 写入整数(写为二进制)
bool SetInt(const std::string& MainKey, const std::string& SubKey, int Data) override
{
return SetBinary(MainKey, SubKey, reinterpret_cast(&Data), sizeof(int));
}
- // дַԶƷʽ
+ // 写入字符串(以二进制方式)
bool SetStr(const std::string& MainKey, const std::string& SubKey, const std::string& Data) override
{
return SetBinary(MainKey, SubKey, reinterpret_cast(Data.data()), static_cast(Data.size()));
}
- // ȡַӶת
+ // 读取字符串(从二进制数据转换)
std::string GetStr(const std::string& MainKey, const std::string& SubKey, const std::string& def = "") override
{
std::vector buffer;
@@ -165,7 +257,7 @@ public:
return std::string(buffer.begin(), buffer.end());
}
- // ȡӶƽ
+ // 读取整数(从二进制解析)
int GetInt(const std::string& MainKey, const std::string& SubKey, int defVal = 0) override
{
std::vector buffer;
diff --git a/compress/libyuv/libyuv_x64.lib b/compress/libyuv/libyuv_x64.lib
index 69864691d2bb9e04d3810d4fedd288ea108fa646..c5308a376eeac5471406bfd500d6d238ba3ffd9f 100644
GIT binary patch
delta 88128
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