Я пытаюсь скопировать широкую c-строку из одного места в другое. Я использую Visual Studio 2012 Express на 64-битной платформе Windows8. Он отлично работает, если я не попробую запустить приложение на моем основном компьютере с Windows7 x64. Он срабатывает мгновенно. Ошибка исключения, хотя это беспорядочный сбой без какого-либо отслеживаемого кода ошибки. Если вам нужна более конкретная информация о самой аварии, я постараюсь ее предоставить. Когда я комментирую копирование, программа работает отлично. Поэтому довольно очевидно, что проблема заключается в самой функции. Вот строка, которая делает все копирования:wmemcpy & wcscpy функции, вызывающие сбои
virtual void CClass::ChangeText();
void CClass::ChangeText(float _f)
{
std::wstringstream wss;
wss << _f;
wcscpy(const_cast<wchar_t *>(this->m_lpszWideText),wss.str().c_str());
}
^падает на win7/работает на Win8
Моя дикая догадка, что новый компилятор использует более новую версию wmemcpy, что просто не работает на Windows 7? Разве программа не вылетает только тогда, когда она достигает линии вызова функции?
Как 'm_lpszWideText 'определено? – hmjd
Это мой собственный (текстовый компонент) класс: указатель участника: 'private: const wchar_t * m_lpszWideText;' – user1756573
Как вы выделяете для него память? Почему он 'const', когда он требует изменения? Почему бы просто не использовать 'std :: wstring'? – hmjd