c++ - ATL 如何将 BSTR* str 转换为注册表项。SetValue(LPCTSTR str 类型

标签 c++ string atl bstr

我已经好几年没写过 C++ 了,更不用说 ATL 代码了

我有这个方法需要手术帮助:(

这是一个移动应用程序,所以我不想使用 CString 和 MFC

我需要将 BSTR* str 转换为正确的类型 LPCTSTR,以便在注册表 Set.Value 方法中使用

STDMETHODIMP CAXSampleCtl::SendMSG(BSTR* str)
{
    CRegKey key;

    key.Create(HKEY_LOCAL_MACHINE, _T("MyKeyName"));

    key.SetValue( str <<<--- nope, _T("MyValueName"));

    key.Flush();

    key.Close();

    return S_OK;
}

最佳答案

COLE2T 宏专为您而设,请参阅 String Conversion Classes and Macros

To convert to a BSTR, pass the existing string to the constructor of CComBSTR. To convert from a BSTR, use COLE2[C]DestinationType[EX], such as COLE2T.

关于c++ - ATL 如何将 BSTR* str 转换为注册表项。SetValue(LPCTSTR str 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654998/

相关文章:

c++ - 在现代 C++ 中,是否仍应使用 volatile 与 ISR 共享数据?

c++ - 在 C++ 中将函数指针转换为整数

php - 分成两个变量?

c++ - R6030 CRT 未初始化

c++ - GetInterfaceFromGlobal() 调用因 Visual Studio 2010 中的进程外 COM 服务器而失败

c++ - 如何安全地删除 ATL DLL 中的 std::thread

c++ - 在每个可能的地方使用指针是一种好习惯吗?

c++ - 一个指针,c++中的两个不同的类

c++ - std::string 停止在\0

java - 获取一个字符串在另一个字符串中出现的次数