char*做为传出参数,封装ocx, 该用什么类型?

秀小川 2017-05-19 09:59:13

//a [in]
//b [out]
int test(char* a, char* b);


如上一个函数, 做为传入参数的a, 我用的是BSTR的类型, 可以正确调用。 传出参数b,用BSTR,得不到传出值。 用BSTR*的话,在JS调用里面用什么类型传入?
...全文
897 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
别叫OFD 2018-03-06
  • 打赏
  • 举报
回复
引用 5 楼 hdt 的回复:
接口定义 应该是 void test( int a,[out,retval]BSTR* b)
当返回值传出是可以的 如果需要传出多个char*呢?
真相重于对错 2017-06-02
  • 打赏
  • 举报
回复
接口定义 应该是 void test( int a,[out,retval]BSTR* b)
秀小川 2017-06-01
  • 打赏
  • 举报
回复
还没试出来怎么传值!
秀小川 2017-05-22
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
就是BSTR,BSTR是一个特殊的类型,本质是一个指针,但是指向内存区+4字节的位置,前4个字节保存字符串的长度
我试过用BSTR, 在JS调用的时候 ,像下面这样写, 在test里面修改了b的值, 在test外并没有变, 是咋会事?

var a="12", b="";
test(a, b);
赵4老师 2017-05-19
  • 打赏
  • 举报
回复
字符串那些事儿:BSTR-LPSTR-LPWSTR-CString-VARIANT-COleVariant-_variant_t-CComBSTR-_bstr_t http://blog.csdn.net/pizi0475/archive/2010/03/04/5346708.aspx
worldy 2017-05-19
  • 打赏
  • 举报
回复
就是BSTR,BSTR是一个特殊的类型,本质是一个指针,但是指向内存区+4字节的位置,前4个字节保存字符串的长度

3,245

社区成员

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

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