我在我的函数里面是这样将GUID转为字符串的
////////////////////////////
LPOLESTR wRes = NULL;
::StringFromCLSID(guid,&wRes );
///////////////////////////但我不知道这样得到的字符串指针需不需要我释放,
显然wRes所指的内存是系统帮我分配得到的,
我的理解是如果不需要我释放,那么有两种可能:
1.wRes指向的实际上是常量区
2.wRes指向的是堆空间,那么系统就要去释放它,什么时候释放呢如果需要我释放,该怎么做?
---------------------------------------------------------
以上是我的理解,我不知道对错,诚心向大家请教
////////////////////////////
LPOLESTR wRes = NULL;
::StringFromCLSID(guid,&wRes );
///////////////////////////但我不知道这样得到的字符串指针需不需要我释放,
显然wRes所指的内存是系统帮我分配得到的,
我的理解是如果不需要我释放,那么有两种可能:
1.wRes指向的实际上是常量区
2.wRes指向的是堆空间,那么系统就要去释放它,什么时候释放呢如果需要我释放,该怎么做?
---------------------------------------------------------
以上是我的理解,我不知道对错,诚心向大家请教
既然这样,那我还不如直接用StringFromGUID2好了//sizeof(L"{00000000-0000-0000-0000-000000000000}")=78;
WCHAR wRes[78] = {0};
StringFromGuid2(guid,wRes,78);这样是不是就没问题了,还省得我去释放