佚名通过本文主要向大家介绍了bstr,bstr t,bstr是什么类型,bstr转cstring,vt bstr等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于BSTR的问题(很急)
描述:
解决方案1:
描述:
各位请教了:
请问如何在ATL中给一个BSTR类型的变量赋值,尤其是将一个byte型的数组,里面放的是ASC码,付给BSTR的变量,(因为使用ATL作的DLL,而此DLL是在VB中使用,而BSTR在VB中是String型,所以要让在VB中得到String正是通过BSTR传递的byte型数组中的ASC码)。
请教各位了,能给举个例子吗,非常感谢了
解决方案1:
可以使用下面的方法
BSTR bstr1 = _com_util::ConvertStringToBSTR("1233sdfa");
BSTR bstr2 = SysAllocString(L"12345sdlf");
使用第一种方法,要用到头文件 comutil.h 和 库文件 comsupp.lib
有点要注意的是从BSTR转换成char时要注意内存泄漏
即 BSTR bstr1 = _com_util::ConvertStringToBSTR("1233sdfa");
char *szBuf = _com_util::ConvertBSTRToString(bstr1);
这里一定要使用 delete []szBuf;
不然会发生内存泄漏
#include "Atlconv.h"
byte b[20];
...
BSTR br=A2BSTR((const char*)b);