我有一段从 CAPICOM.Utilities 获取随机二进制字符串的代码。
m_pUtilities.CreateInstance(__uuidof(Utilities));
_bstr_t bstrResult;
m_pUtilities->raw_GetRandom(64, CAPICOM_ENCODE_BINARY, bstrResult.GetAddress());
我做了一个返回的方法
return std::wstring(bstrResult);
我的方法使插件应用程序崩溃。6 个电话中的 1 个。异常描述为 Unhandled exception at 0x7572969b in chrome.exe: Microsoft C++ exception: utf8::invalid_utf16 at memory location。我试图将我的方法的返回类型从 FB::variant 更改为 std::wstring,但这没有帮助。
我做错了什么?我应该如何返回二进制字符串?将二进制字符串转换为 base64 或返回字符串的其他更改不适合我。