From ff1a8c980784536fe8d3238aa8e96c43f45a4e23 Mon Sep 17 00:00:00 2001 From: Changhua Date: Mon, 3 Feb 2025 23:18:20 +0800 Subject: [PATCH] Refactoring --- WeChatFerry/spy/spy_types.h | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/WeChatFerry/spy/spy_types.h b/WeChatFerry/spy/spy_types.h index 7fd1008..56f7c51 100644 --- a/WeChatFerry/spy/spy_types.h +++ b/WeChatFerry/spy/spy_types.h @@ -5,29 +5,42 @@ typedef uint64_t QWORD; -struct WxString { +class WxString +{ + +public: const wchar_t *wptr; DWORD size; DWORD capacity; const char *ptr; DWORD clen; + WxString() { - wptr = NULL; + wptr = nullptr; size = 0; capacity = 0; - ptr = NULL; + ptr = nullptr; clen = 0; } - WxString(std::wstring &ws) + WxString(std::wstring ws) : internal_ws(std::move(ws)) { - wptr = ws.c_str(); - size = (DWORD)ws.size(); - capacity = (DWORD)ws.capacity(); - ptr = NULL; + wptr = internal_ws.c_str(); + size = static_cast(internal_ws.size()); + capacity = static_cast(internal_ws.capacity()); + ptr = nullptr; clen = 0; } + + WxString(const WxString &) = delete; + WxString &operator=(const WxString &) = delete; + + WxString(WxString &&) noexcept = default; + WxString &operator=(WxString &&) noexcept = default; + +private: + std::wstring internal_ws; }; typedef struct RawVector {