diff --git a/CWeChatRobot/ReceiveMessage.cpp b/CWeChatRobot/ReceiveMessage.cpp index 2244d24c39fa6098117beec0b8a244ded395964e..5370042697b2ebdb2542b7e8b210d6c10ec787a5 100644 --- a/CWeChatRobot/ReceiveMessage.cpp +++ b/CWeChatRobot/ReceiveMessage.cpp @@ -125,7 +125,6 @@ SAFEARRAY* ReceiveMessage() { else { return NULL; } - printf("%ws\n", message.wxid); PopHeadMessage(); SAFEARRAY* psaValue; vector MessageInfoKey = { @@ -142,21 +141,34 @@ SAFEARRAY* ReceiveMessage() { hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[0].c_str()); keyIndex[0] = 0; keyIndex[1] = 1; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.type); + keyIndex[0] = 1; keyIndex[1] = 0; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[1].c_str()); keyIndex[0] = 1; keyIndex[1] = 1; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.sender); + delete[] message.sender; + message.sender = NULL; + keyIndex[0] = 2; keyIndex[1] = 0; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[2].c_str()); keyIndex[0] = 2; keyIndex[1] = 1; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.wxid); + delete[] message.wxid; + message.wxid = NULL; + keyIndex[0] = 3; keyIndex[1] = 0; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[3].c_str()); keyIndex[0] = 3; keyIndex[1] = 1; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.message); + delete[] message.message; + message.message = NULL; + keyIndex[0] = 4; keyIndex[1] = 0; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[4].c_str()); keyIndex[0] = 4; keyIndex[1] = 1; hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.filepath); + delete[] message.filepath; + message.filepath = NULL; + return psaValue; } \ No newline at end of file diff --git a/DWeChatRobot/ReceiveMessage.cpp b/DWeChatRobot/ReceiveMessage.cpp index 55ca6e8b4217acd6ed23377a4bd481410e92c4cd..da95bd7c1048a5a4e4ad6ad1d03752d76de09406 100644 --- a/DWeChatRobot/ReceiveMessage.cpp +++ b/DWeChatRobot/ReceiveMessage.cpp @@ -76,6 +76,14 @@ DWORD GetHeadMessage() { VOID PopHeadMessage() { if (messageVector.size() == 0) return; + delete[] messageVector[0].message; + messageVector[0].message = NULL; + delete[] messageVector[0].sender; + messageVector[0].sender = NULL; + delete[] messageVector[0].wxid; + messageVector[0].wxid = NULL; + delete[] messageVector[0].filepath; + messageVector[0].filepath = NULL; vector::iterator k = messageVector.begin(); messageVector.erase(k); } diff --git a/Release/CWeChatRobot.exe b/Release/CWeChatRobot.exe index 2cb627f51c305c81029651095c8d2e02c8628546..846ff6f2038bb61060005e5128044f80c2c5c373 100644 Binary files a/Release/CWeChatRobot.exe and b/Release/CWeChatRobot.exe differ diff --git a/Release/DWeChatRobot.dll b/Release/DWeChatRobot.dll index cb01ca599ec9ac5e6be5e32c529e19030d89b0dc..c7b0a1f30e0fa2f470a2128c5b3d50a3ee8aa02e 100644 Binary files a/Release/DWeChatRobot.dll and b/Release/DWeChatRobot.dll differ