【1】char* 转 BSTR
1)头文件
#include <atlconv.h>
2)库文件:无额外的库
3)特殊的宏定义:
USES_CONVERSION;
4)代码:
BSTR* name;
char strName[30] = { 0 };
sprintf(strName, "%s", "123MySystem");
USES_CONVERSION;
*name = SysAllocString(A2W(strName));
注意:name用完要释放内存,否则会造成内存泄漏
【2】BSTR 转 char*
1)头文件
#include <comutil.h>
2)库文件
#pragma comment(lib, "comsuppw.lib")
3)代码 :
BSTR str;
pT->GetName(&str);
name = _com_util::ConvertBSTRToString(str);
printf_s("系统名称 [char*]: %s\n", name);
SysFreeString(str);
注意:str是一个指针,GetName是一个DCOM的接口,参数是“BSTR*”