我来自Java
,所以我对C++
中的许多类型的String感到困惑
我输入的函数为:
functionTest(_bstr_t *params) {...}
然后我有一个变量声明为:
CString paramsInput
如何将CString
转换为_bstr_t
以传递给函数?
答案 0 :(得分:1)
CComBSTR具有重载的转换功能。
CString paramsInput;
ATL::CComBSTR bstr = paramsInput;
///或者,您可以将其作为ATL :: CComBSTR bstr(paramsInput); functionTest(&bstr);
请注意,如果functionTest()测试将其param参数声明为out
,则需要注意内存泄漏。有关如何处理的信息,请参见this:
答案 1 :(得分:1)
假设您使用默认的UNICODE进行编译。
#include <atlbase.h>
#include <atlcom.h>
#include <atlstr.h>
CComBSTR bstrParamsInput(paramsInput);
functionTest(&bstrParamsInput);