私はコンボボックスを埋めています:
while((pHPSet = pHPTable->GetNext()) != NULL)
{
CString str = pHPSet->GetName();
// I am normally using str but to proove that this is
// not the problem I am using "a"
m_comboBaseHP.AddString(_T("a"));
}
今、私はコンボボックスを読み込もうとしています:
if(m_comboBaseHP.GetCount() > 0)
{
CString csHPName = _T("");
m_comboBaseHP.GetLBText(0, csHPName);
// This is the ms way but ReleaseBuffer causes a crash
//CString str = _T("");
//int n = m_comboBaseHP.GetLBTextLen( 0 );
//m_comboBaseHP.GetLBText( 0, str.GetBuffer(n) );
//str.ReleaseBuffer();
// Do whatever with csHPName
}
問題は、csHPNameがデバッガーにいくつかの中国の記号を表示することです。これはメモリのゴミだと思います。これは同じ方法で発生します。これは描画前に発生します。ポストは同じ問題を描きます。これは、デバッグとリリースで発生します。私は実際にポインタを操作していないので、これがどのように発生するのかわかりません。