From 7bf936fa8f98e68c4ce0a899ffcd75206d7fe722 Mon Sep 17 00:00:00 2001 From: taynpg Date: Mon, 12 May 2025 12:53:16 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=AD=A3Linux=E4=B8=8BwxD?= =?UTF-8?q?ateTime=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Protocol/Communicate.cxx | 9 +++++---- Test/main.cxx | 1 + Util/Util.h | 3 +-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Protocol/Communicate.cxx b/Protocol/Communicate.cxx index 6c857ab..ac60b43 100644 --- a/Protocol/Communicate.cxx +++ b/Protocol/Communicate.cxx @@ -41,8 +41,8 @@ FrameBuffer* Communicate::ParseBuffer(MutBuffer& buffer) frame = new FrameBuffer(); frame->len = dataLen; - frame->fid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t), 32); - frame->tid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t) + 32, 32); + frame->fid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t)); + frame->tid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t) + 32); std::memcpy(&frame->dataType, buffer.GetData() + find + sizeof(gHeader), sizeof(frame->dataType)); if (frame->len > 0) { @@ -70,10 +70,11 @@ bool Communicate::PackBuffer(FrameBuffer* frame, char** buf, int32_t& len) } len = sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len) + frame->len + sizeof(gTail); *buf = new char[len]; + std::memset(*buf + sizeof(gHeader) + sizeof(uint16_t), 0x0, 64); std::memcpy(*buf, gHeader, sizeof(gHeader)); std::memcpy(*buf + sizeof(gHeader), &frame->dataType, sizeof(frame->dataType)); - std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t), frame->fid.c_str(), 32); - std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 32, frame->tid.c_str(), 32); + std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t), frame->fid.c_str(), frame->fid.size()); + std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 32, frame->tid.c_str(), frame->tid.size()); std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64, &frame->len, sizeof(frame->len)); if (frame->len > 0) { std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len), dataPtr, frame->len); diff --git a/Test/main.cxx b/Test/main.cxx index 3575b98..9fef3f1 100644 --- a/Test/main.cxx +++ b/Test/main.cxx @@ -84,6 +84,7 @@ void test3() } delete[] d; } + delete f; } int main() diff --git a/Util/Util.h b/Util/Util.h index 5050b87..af92da7 100644 --- a/Util/Util.h +++ b/Util/Util.h @@ -18,8 +18,7 @@ class MLogFormatter : public wxLogFormatter public: wxString Format(wxLogLevel level, const wxString& msg, const wxLogRecordInfo& info) const override { - //wxDateTime time(info.timestampMS / 1000); - wxDateTime time; + wxDateTime time(static_cast(info.timestampMS / 1000)); time.SetMillisecond(info.timestampMS % 1000); auto timeStr = time.Format(wxT("%H:%M:%S.%l")); wxString levelStr;