Поскольку вы используете MFC, почему вы не используете его класс CString
?Это одна из причин, по которой многие программисты были привлечены к MFC, потому что это значительно облегчает работу со строками.
Например, вы можете просто написать:
int len = m_edit.LineLength(m_edit.LineIndex(0));
CString path;
LPTSTR p = path.GetBuffer(len);
m_edit.GetLine(0, p, len);
path.ReleaseBuffer();
(код вышепроверено на работоспособность в Windows 7.)
Обратите внимание, что скопированная строка не содержит символа нулевого завершения (см. раздел «Замечания» в документации ).Это может объяснить бессмысленные символы, которые вы видите в более поздних версиях Windows.