私は次のコードリテラルで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