代码之家  ›  专栏  ›  技术社区  ›  Rick2047

无法从“wchar”转换为“wchar[260]”

  •  0
  • Rick2047  · 技术社区  · 15 年前

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

    我试图在这里硬编码一些变量,如文件名、默认分辨率、格式类型等。

    WCHAR wszCaptureFile[260]; 
    
    gcap.wszCaptureFile = (WCHAR)"Capture.avi\0"    //modified 
    

    GETTNIG错误:

    1>.\amcap.cpp(3887):错误C2440:“=” :无法从“wchar”转换为 WChar〔260〕

    我能做些什么来纠正这个问题?

    4 回复  |  直到 12 年前
        1
  •  3
  •   James Hopkin    15 年前

    提供文本范围的字符串并使用安全复制函数:

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

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

        2
  •  4
  •   aJ.    15 年前

    不能用=(如您所做的那样)分配数组wszCaptureFile。您可以使用如下复制方法 strcpy .

    wcspy和mbscpy是宽字符 和多字节字符版本 拷贝字符串

    前任:

    wcscpy(gcap.wszcapturefile,l“capture.avi”);

        3
  •  2
  •   kenny    15 年前

    根据对答案的评论更新…也可以考虑一下wstrcpy_。

    wstrcpy ( wszCaptureFile, L"Capture.avi" );
    
        4
  •  -4
  •   ChrisBD    15 年前

    将字符串强制转换为wchar元素,而不是希望的wchar数组。 尝试:

    wszCaptureFile = L"Capture.avi\0";