请告诉我如何在SysAllocString()中使用像char *xyz这样的字符串,它以OLECHAR const *为参数
发布于 2016-04-11 15:48:31
要将char*转换为const OLECHAR*,可以使用宏A2COLE
所以,如果你有一个'char* pChar‘,它应该可以这样做:
const OLECHAR* pOleChar = A2COLE( pChar );
BSTR str = SysAllocString( pOleChar );
// do something with the 'str'
SysFreeString( str ); // need to cleanup the allocated BSTR发布于 2016-04-11 16:03:33
根据char*的编码方式,您有一些不同的选项:
ANSI是Windows所说的-
BSTR foo(const char* s) { return SysAllocString( CA2W (s));// CA2W需要 }
或者你可以使用_bstr_t:
BSTR foo(const char* s) { return _bstr_t(s).Detach();}
MultiByteToWideChar。发布于 2016-04-11 15:54:37
这就像wchar_t一样,这样你就可以简单地调用函数:
SysAllocString(L"hello");或者,如果您有wchar_t *,使用mbstowcs_s将其转换为char*。
https://stackoverflow.com/questions/36542277
复制相似问题