Не может преобразовать из 'константы wchar_t *' к '_TCHAR *'

Для Mac OS используйте эту команду

sudo chown -R mysql:mysql /usr/local/mysql*

Пользователь mysql должен иметь доступ для записи в каталог данных mysql.

6
задан JasonMArcher 22 August 2015 в 17:54
поделиться

4 ответа

Попробуйте преобразовать его как

strGroupName = (_TCHAR*)_tcschr(strTempName, 92);

Мне кажется, VS2008 стал немного более строгим в отношении преобразования типов и в некоторых случаях не выполняет их автоматически.

6
ответ дан 8 December 2019 в 13:48
поделиться
strGroupName = const_cast<_TCHAR*>( _tcschr(strTempName, 92));

Это связано с тем, что используемый вами вариант функции имеет на входе const _TCHAR * и возвращает const _TCHAR *.

Другой вариант - объявить strTempName как _TCHAR *, а не как const _TCHAR *. В этом случае используется вариантная функция, имеющая параметр _TCHAR * и возвращающая значение _TCHAR *.

7
ответ дан 8 December 2019 в 13:48
поделиться

strGroupName также должен быть указателем на const .

const _TCHAR* strGroupName = _tcschr(strTempName, 92);

Нет необходимости объявлять его до вызова для его инициализации.

2
ответ дан 8 December 2019 в 13:48
поделиться

_tcschr возвращает константный указатель. Следовательно, возвращаемое значение должно быть const _TCHAR * strGroupName = NULL; Если невозможно изменить strGroupName на константный указатель, объявите оба указателя как неконстантные указатели.

2
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: