BSTR str;
LPSTR str1;
str=SysAllocString(OLESTR("This is a Test!"));
int len = strlen((LPSTR)_bstr_t(str));
str1 = new char[len];
strcpy(str1,(LPSTR)_bstr_t(str));
AfxMessageBox(LPCTSTR(str1)); //正常
AfxMessageBox(LPSTR(_bstr_t(str)));
LPSTR str1;
str=SysAllocString(OLESTR("This is a Test!"));
int len = strlen((LPSTR)_bstr_t(str));
str1 = new char[len];
strcpy(str1,(LPSTR)_bstr_t(str));
AfxMessageBox(LPCTSTR(str1)); //正常
AfxMessageBox(LPSTR(_bstr_t(str)));
分配了一定的内存,
最后需要释放吗?我加入了delete [] str1;出错。这内存是怎样释放的。
而str1是申请的ascii串,它们的数据结构不一样(存储结构不一样),
这样导致了str1的存储结构不正常。因此释放出错.
而str1是申请的ascii串,它们的数据结构不一样(存储结构不一样),
这样导致了str1的存储结构不正常。因此释放出错.