wprintf(L"Selecting Audio Input Device: %s\n",
varName.bstrVal);
if(0 == strcmp(varName.bstrVal, "IP Camera [JPEG/MJPEG]"))...
以上报道:
error C2664: 'strcmp' : cannot convert parameter 1 from 'BSTR' to 'const char *'
最佳答案
您必须改用 wcscmp
:
if(0 == wcscmp(varName.bstrVal, L"IP Camera [JPEG/MJPEG]"))
{
}
这是一个description of the BSTR data type ,它有一个长度前缀和一个真正的字符串部分,它只是一个 WCHAR 字符数组。它还具有 2 个 NULL 终止符。
唯一需要注意的是 BSTR 数据类型可以在字符串部分包含嵌入的 NULL,因此 wcscmp
仅在 BSTR 不包含嵌入的 NULL 的情况下起作用(这可能是大多数情况)。
关于c++ - 如何将 BSTR 与 c/c++ 中的字符串进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700772/