나는 그것은 디버그 잘 작동 다음 코드리터럴에 SysAllocString을 사용하는 데 문제가 있습니까?
void Test()
{
BSTR aBstr = ::SysAllocString(L"blah");
PrintBSTR(aBstr);
::SysFreeString(aBstr);
}
void PrintBSTR(BSTR _aBstr)
{
PrintWstring(_aBstr);
}
void PrintWstring(std::wstring _aWstring)
{
std::wcout << _aWstring << std::endl
}
을 가지고,하지만 난 릴리스에서 메모리 손상을 얻을. 실제로, 내가 PrintWstring
에있을 때 나쁜 포인터를 얻고, _aWstring
에 쓰레기가 포함되어 있습니다. 나는 SysAllocString
이 리터럴과 잘 어울리지 않는다고 생각합니다. 어떤 생각?
코드 디버깅을 시도하고 이러한 변수에 포함 된 내용을 확인하십시오. – Ajay
저에게 맞습니다. 가능성이 높습니다. – sharptooth