我有這樣的功能:這是內存泄漏嗎? (C++ BSTRs)
bool Function (BSTR paramter1, BSTR parameter2)
{
// My Code
}
這我打電話是這樣的:
Function(SysAllocString(L"Example1"), SysAllocString(L"Example2"));
我的理解是,我與SysAllocString
分配必須SysFreeString
被釋放。
BSTR
似乎是typedef OLECHAR *BSTR;
引擎蓋下一個typedef由於這是一個指針,我應該沒事,只要我添加
SysFreeString(parameter1);
SysFreeString(parameter2);
內Function
,不命名BSTR
s。
我在這裏的所有推理是否正確,只要我添加這兩行,我不會泄漏內存?我仍然有很多東西需要學習。非常感謝您的寶貴時間。
是的,這是一個泄漏。很容易找到自己,只需運行這個代碼十億次。考慮_bstr_t或CComBSTR,自動執行它的包裝。 –