не может конвертировать из 'WCHAR' в 'WCHAR [260]' - PullRequest
0 голосов
/ 21 мая 2009

Я пытаюсь изменить amcap, приложение из примера Windows SDK, для захвата видео с веб-камеры UVC с разрешением 1600x1200px.

Я пытаюсь жестко закодировать некоторые переменные, такие как имя файла, разрешение по умолчанию, тип формата и т. Д.

WCHAR wszCaptureFile[260]; 

gcap.wszCaptureFile = (WCHAR)"Capture.avi\0"    //modified 

Ошибка gettnig:

1>. \ Amcap.cpp (3887): ошибка C2440: '=' : невозможно преобразовать из 'WCHAR' в 'WCHAR [260]'

Что я могу сделать, чтобы исправить это?

Ответы [ 4 ]

4 голосов
/ 21 мая 2009

Вы не можете присвоить массив wszCaptureFile с = (как вы сделали). Вы можете использовать методы копирования, такие как strcpy .

wcscpy и _mbscpy - широкие символы и многобайтовые версии символов зЬгсру

например:

wcscpy (gcap.wszCaptureFile, L "Capture.avi");

3 голосов
/ 21 мая 2009

Укажите буквально широкую строку и используйте функцию безопасного копирования:

wcscpy_s(gcap.wszCaptureFile, L"Capture.avi");

Буквенная строка предоставляет завершающие нулевые байты.

2 голосов
/ 21 мая 2009

ОБНОВЛЕНО, основываясь на комментариях к ответу ... и рассмотрите wstrcpy_s тоже.

wstrcpy ( wszCaptureFile, L"Capture.avi" );
0 голосов
/ 21 мая 2009

Приведение вашей строки к элементу WCHAR, а не к массиву WCHAR, как вы и надеялись. Попробуйте:

wszCaptureFile = L"Capture.avi\0";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...