苦恼BSTR

laowang456 2004-06-30 05:26:34
我用VC写了一个OCX,用VC上层调用一切正常,用C++ BUILDER调用开始时总说调用函数的参数错。
在C++上改了后,调用函数可以了,但返回事件总是说参数错,我总不能去改C++的底层吧:(,只有向OCX下手了.

EVENT_CUSTOM("COMMRecv", FireCOMMRecv, VTS_I4 VTS_BSTR VTS_I4 VTS_BSTR VTS_I4 VTS_VARIANT VTS_I4)
事件是这样定义的,怎么把VTS_BSTR作成C++认可的BSTR呢?
我试着在OCX中直接用BSTR类型,编译错误说不能把unsigned short* 转成const char*.
我试着用UNICODE的方式,但连strlen都出问题了。
各位大侠,给点意思吧。我只有90分可以给了,全给你们了。
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
醉马不肖 2004-07-01
  • 打赏
  • 举报
回复
vb能调用吗?
FreePlus 2004-07-01
  • 打赏
  • 举报
回复
呵呵, BSTR是一种类VB的字符串, 有长度前缀的. 肯定不能用strlen之类的crt函数. 可以用_bstr_t或ATL的类CComBSTR类.
iamknight 2004-06-30
  • 打赏
  • 举报
回复
用_bstr_t 吧代替BSTR吧。
lianglp 2004-06-30
  • 打赏
  • 举报
回复
在wind32下BSTR是一个宽字符,所以你不能用strlen进行测试取得字符串长度,
如果想得到宽字符长度,请用SysStringLen(bstr)
laowang456 2004-06-30
  • 打赏
  • 举报
回复
大家给点意见啊

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧