无法从'WCHAR'转换为'WCHAR [260]'

时间:2009-05-21 11:28:17

标签: .net c++ visual-c++

我正在尝试修改amcap,这是一个来自Windows SDK示例的应用程序,用于从分辨率为1600x1200px的UVC网络摄像头捕获视频。

我正在尝试对这里的一些变量进行硬编码,如文件名,默认分辨率,格式类型等。

WCHAR wszCaptureFile[260]; 

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

gettnig错误:

  

1>。\ amcap.cpp(3887):错误C2440:'='   :无法从'WCHAR'转换为   'WCHAR [260]'

我该怎么做才能纠正这个问题?

4 个答案:

答案 0 :(得分:4)

您无法使用=分配数组wszCaptureFile(正如您所做的那样)。您可以使用strcpy之类的复制方法。

  

wcscpy和_mbscpy是宽字符   和多字节字符版本   的strcpy

例如:

wcscpy(gcap.wszCaptureFile,L“Capture.avi”);

答案 1 :(得分:3)

提供文字宽字符串并使用安全复制功能:

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

文字字符串提供终止零字节。

答案 2 :(得分:2)

根据对答案的评论更新......并考虑wstrcpy_s。

wstrcpy ( wszCaptureFile, L"Capture.avi" );

答案 3 :(得分:-4)

您希望将字符串转换为WCHAR元素而不是WCHAR数组。 尝试:

wszCaptureFile = L"Capture.avi\0";