Char * в WCHAR

Рейтинг: 2Ответов: 2Опубликовано: 17.02.2015

Есть кусок кода, который по факту работает в одной из более ранних версий VC++, но в 12 получается следующее:

LOGFONT logfont;
strcpy(logfont.lfFaceName, "Arial");

где lfFaceName является WCHAR[32] и ругается

невозможно преобразовать аргумент 1 из "WCHAR [32]" в "char *"

И с какой стати ИЗ WCHAR В char *, если функция копирует из второго аргумента-указателя в первый?

Ответы

▲ 2

Нужно использовать lstrcpy. Правильно так:

lstrcpy(logfont.lfFaceName, _T("Arial"));
▲ 1

Может, поможет такая запись:

#include <tchar.h>
...
LOGFONT logfont;
strcpy(logfont.lfFaceName, _T("Arial"));
...

То есть с добавлением _T().