各位请教了:
请问如何在ATL中给一个BSTR类型的变量赋值,尤其是将一个byte型的数组,里面放的是ASC码,付给BSTR的变量,(因为使用ATL作的DLL,而此DLL是在VB中使用,而BSTR在VB中是String型,所以要让在VB中得到String正是通过BSTR传递的byte型数组中的ASC码)。
请教各位了,能给举个例子吗,非常感谢了
请问如何在ATL中给一个BSTR类型的变量赋值,尤其是将一个byte型的数组,里面放的是ASC码,付给BSTR的变量,(因为使用ATL作的DLL,而此DLL是在VB中使用,而BSTR在VB中是String型,所以要让在VB中得到String正是通过BSTR传递的byte型数组中的ASC码)。
请教各位了,能给举个例子吗,非常感谢了
解决方案 »
- jsp调用MFC的active控件,网页关闭如何释放控件?
- 关于CView::OnInitialUpdate的问题
- 急需VS2005+VSTO+Office插件开发相关资料(能提供相关资料网址最好,谢谢各位啦!!!)
- 关于CBCGPTabbedView
- 大家有没有发现ListCtrl的LVN_ITEMCHANGED时间为什么连续响应3次,是不是vc的bug,急!!!
- 使用WSAEventSelect时出错,不明原因
- vc6.0 读取配置文件失败
- 关于插入数据带引号的问题
- 请教:谁能帮我找一个能和外国朋友聊天和交朋友的网站? 万分感谢!
- 如何获取窗口的 HWND?有几种方法??
- 急急急!!!
- 我的WindowsXP不能保存鼠标滚轮的方案
byte b[20];
...
BSTR br=A2BSTR((const char*)b);
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;
不然会发生内存泄漏
BSTR tmp = Name.copy();
#include "Atlconv.h"
byte b[20];
...
BSTR br=A2BSTR((const char*)b);
b[20] = '\0';BSTR br = A2BSTR((const char*)b); //A2BSTR这个东东有大小限制吧?你还是用wzhing(从不留言)的方法比较好些,偶觉得。你的第二个问题从wzhing(从不留言)中也可以解决的,你仔细看一下吧。