提交 9516324c 编写于 作者: L ljc545w

接收消息后释放内存块

上级 60dda384
...@@ -125,7 +125,6 @@ SAFEARRAY* ReceiveMessage() { ...@@ -125,7 +125,6 @@ SAFEARRAY* ReceiveMessage() {
else { else {
return NULL; return NULL;
} }
printf("%ws\n", message.wxid);
PopHeadMessage(); PopHeadMessage();
SAFEARRAY* psaValue; SAFEARRAY* psaValue;
vector<wstring> MessageInfoKey = { vector<wstring> MessageInfoKey = {
...@@ -142,21 +141,34 @@ SAFEARRAY* ReceiveMessage() { ...@@ -142,21 +141,34 @@ SAFEARRAY* ReceiveMessage() {
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[0].c_str()); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[0].c_str());
keyIndex[0] = 0; keyIndex[1] = 1; keyIndex[0] = 0; keyIndex[1] = 1;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.type); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.type);
keyIndex[0] = 1; keyIndex[1] = 0; keyIndex[0] = 1; keyIndex[1] = 0;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[1].c_str()); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[1].c_str());
keyIndex[0] = 1; keyIndex[1] = 1; keyIndex[0] = 1; keyIndex[1] = 1;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.sender); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.sender);
delete[] message.sender;
message.sender = NULL;
keyIndex[0] = 2; keyIndex[1] = 0; keyIndex[0] = 2; keyIndex[1] = 0;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[2].c_str()); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[2].c_str());
keyIndex[0] = 2; keyIndex[1] = 1; keyIndex[0] = 2; keyIndex[1] = 1;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.wxid); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.wxid);
delete[] message.wxid;
message.wxid = NULL;
keyIndex[0] = 3; keyIndex[1] = 0; keyIndex[0] = 3; keyIndex[1] = 0;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[3].c_str()); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[3].c_str());
keyIndex[0] = 3; keyIndex[1] = 1; keyIndex[0] = 3; keyIndex[1] = 1;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.message); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.message);
delete[] message.message;
message.message = NULL;
keyIndex[0] = 4; keyIndex[1] = 0; keyIndex[0] = 4; keyIndex[1] = 0;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[4].c_str()); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)MessageInfoKey[4].c_str());
keyIndex[0] = 4; keyIndex[1] = 1; keyIndex[0] = 4; keyIndex[1] = 1;
hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.filepath); hr = SafeArrayPutElement(psaValue, keyIndex, &(_variant_t)message.filepath);
delete[] message.filepath;
message.filepath = NULL;
return psaValue; return psaValue;
} }
\ No newline at end of file
...@@ -76,6 +76,14 @@ DWORD GetHeadMessage() { ...@@ -76,6 +76,14 @@ DWORD GetHeadMessage() {
VOID PopHeadMessage() { VOID PopHeadMessage() {
if (messageVector.size() == 0) if (messageVector.size() == 0)
return; 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<messageStruct>::iterator k = messageVector.begin(); vector<messageStruct>::iterator k = messageVector.begin();
messageVector.erase(k); messageVector.erase(k);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册