看了以下的一段代码,不解,请问COM高手.
BSTR bstrOS;
hr = pISimple01->GetOSVersion(&bstrOS);
.......
char *pszOS;
pszOS = _com_util::ConvertBSTRToString(bstrOS);
printf("The OS is %s\n", pszOS);
SysFreeString(bstrOS);
delete pszOS;_com_util的二个转换函数是不是动态申请了内存,不能调入到里面去看(晕)
delete pszOS可以吗,好像只删除一个字节,平常我们都是用
char *pNew = new char[NEWLEN * sizeof(char));
delete []pNew;
BSTR bstrOS;
hr = pISimple01->GetOSVersion(&bstrOS);
.......
char *pszOS;
pszOS = _com_util::ConvertBSTRToString(bstrOS);
printf("The OS is %s\n", pszOS);
SysFreeString(bstrOS);
delete pszOS;_com_util的二个转换函数是不是动态申请了内存,不能调入到里面去看(晕)
delete pszOS可以吗,好像只删除一个字节,平常我们都是用
char *pNew = new char[NEWLEN * sizeof(char));
delete []pNew;
// ConvertBSTRToString.cpp
#include <comutil.h>
#include <stdio.h>
#pragma comment(lib, "comsupp.lib")
int main()
{
BSTR bstrText = ::SysAllocString(L"Test");
wprintf(L"BSTR text: %s\n", bstrText);
char* lpszText2 = _com_util::ConvertBSTRToString(bstrText);
printf("char * text: %s\n", lpszText2);
SysFreeString(bstrText);
delete[] lpszText2;
}这段是MSDN上的
free(lpszText2)释放
我不管是哪种方式但,都找不到_com_util这个东东
更不用说ConvertBSTRToString这个涵数了