Привет народ.
Постоянно встречаюсь с такой раздражающей проблемой:
Код:
CEdit edtDateFrom;// Объявлен в другом месте
. . .
void SomeFunc()
{
CString *strDateFrom = new CString;
. . .
int iFromSize = edtDateFrom.LineLength();
edtDateFrom.GetLine(0, strDateFrom->GetBuffer(), iFromSize);
. . .
delete strDateFrom; // Здесь выскакивает ошибка при выполнении
// (не при компиляции)
}
Если закоментировать:
/* edtDateFrom.GetLine(0, strDateFrom->GetBuffer(), iFromSize); */
то все работает нормально. Т.е. при передаче буфера strDateFrom(тип CString) эта переменная как-бы залочивается, ее невозможно удалить, в нее невозможно записать другое значение, вызов ее методов(это экземпляр класса) напимер
->GetLength() дает 0, даже если это не так. в общем полная жопа.
Та-же ситуация если использовать не указатель а просто переменную CString.
Кстати то-же самое было когда я использовал тип LPSTRZ в функциях WinAPI например GetCurrentDir(), переменная залочивается и ничего с ней не сделать
((
Что это за бодяга может мне кто-нибудь объяснить???