我是C ++的新手,我正在尝试编译此代码,并收到如下错误, 谁能给我一个解决的指南?非常感谢。 我在Google上搜索了很多,但仍然无法解决
Error C2664 'HRESULT IRegistrationInfo::put_Author(BSTR)': cannot convert argument 1 from 'const wchar_t [12]' to 'BSTR' ConsoleApplication7 c:\users\hellojeff\source\repos\consoleapplication7\consoleapplication7\consoleapplication7.cpp 135 1
Warning C4603 '_WIN32_DCOM': macro is not defined or definition is different after precompiled header use ConsoleApplication7 c:\users\hellojeff\source\repos\consoleapplication7\consoleapplication7\consoleapplication7.cpp 5 1
Error (active) E0167 argument of type "const wchar_t *" is incompatible with parameter of type "BSTR" ConsoleApplication7 C:\Users\HelloJeff\source\repos\ConsoleApplication7\ConsoleApplication7\ConsoleApplication7.cpp 135 28
似乎此行的const wchar_无法转换为'BSTR',
hr = pRegInfo->put_Author(L"Author Name");
完整代码位于https://docs.microsoft.com/en-us/windows/win32/taskschd/logon-trigger-example--c---,
答案 0 :(得分:0)
您可以这样做:
hr = pRegInfo->put_Author(_bstr_t(L"Author Name"));
BSTR
是与宽字符串文字不同的字符串。 _bstr_t
类是一个包装器,在这种情况下,该包装器从文字中制作出一个临时BSTR
以便传递给该函数。
有关更多信息,请参见this article