小编use*_*027的帖子

C++泄漏VARIANT/bstrVal代码

泄漏检查程序告诉我内存中有内存泄漏,在以下代码中分配:

// Get the value from the object as a variant.
VARIANT vVal;
VariantInit ( &vVal );
hres = clsObj->Get ( fieldName.c_str(), 0, &vVal, 0, 0 );
if ( FAILED ( hres ) )
{
    (... various cleanup / throw stuff ...)
}

// And get it as a wstring.
wstring val ( vVal.bstrVal );

(... do some standard, non-memory leaking stuff with the wstring ...)    

// Clean up.
VariantClear ( &vVal );
Run Code Online (Sandbox Code Playgroud)

其中的"clsObj"是一个IWbemClassObject,它是WMI东西的Microsoft接口.

分配泄漏内存的特定行是"clsObj-> Get"行.然后泄漏检查器报告泄漏本身的更具体的代码(即,在分配泄漏的内存时的堆栈跟踪中),我没有源代码:

(ole32): (filename not available): …
Run Code Online (Sandbox Code Playgroud)

c++ com memory-leaks bstr variant

6
推荐指数
1
解决办法
3320
查看次数

标签 统计

bstr ×1

c++ ×1

com ×1

memory-leaks ×1

variant ×1