紧急求助:用MFC开发的ActiveX传入函数的BSTR是乱码

时间:2021-02-12 00:21:09
我用MFC开发的ActiveX,函数这样定义的:
BSTR CCRSCActiveXCtrl::GetCameraData(SHORT command, BSTR ip, SHORT port, BSTR identifier);

函数内部得到的ip和identifier两个BSTR类型的参数值都是乱码,我是把BSTR转成char *, 然后用AfxMessageBox打出来。
我是用VS2010按多字节方式编译。

请问该如何得到正常的BSTR的值呢?谢谢!!!

6 个解决方案

#1


用LPCTSTR吧。

#2


怎么用LPCTSTR呢,我这VC2010里点右键添加方法,里面没有LPCTSTR类型,我试着自己输入LPCTSTR,VC提示我说不是VARIANT兼容的类型。

难道我建的ActiveX工程不对吗,我用ActiveX容器测试器可以调用啊。

郁闷啊。。。。

#3


BSTR 是unicode编码。估计是你BSTR转成char *时出错了。
另外传递参数是应该用unicode编码往里传递。

#4


谢谢楼上的,确实得用UNICODE方式编译才行,送分!!

#5


用Unicode

#6


用Unicode

#1


用LPCTSTR吧。

#2


怎么用LPCTSTR呢,我这VC2010里点右键添加方法,里面没有LPCTSTR类型,我试着自己输入LPCTSTR,VC提示我说不是VARIANT兼容的类型。

难道我建的ActiveX工程不对吗,我用ActiveX容器测试器可以调用啊。

郁闷啊。。。。

#3


BSTR 是unicode编码。估计是你BSTR转成char *时出错了。
另外传递参数是应该用unicode编码往里传递。

#4


谢谢楼上的,确实得用UNICODE方式编译才行,送分!!

#5


用Unicode

#6


用Unicode