读书人

为什么小弟我创建OCX需要输出参数选

发布时间: 2013-08-01 15:23:18 作者: rapoo

为什么我创建OCX需要输出参数,选择BSTR后面总是自动增加个FAR*呢?
还有应该如何定义才能通过JS获取返回的字符串呢?


short CTisSelfServiceCtrl::Query2(LPCTSTR rescode, LPCTSTR bank_code, LPCTSTR card_no, LPCTSTR expr, LPCTSTR batch, LPCTSTR trace, LPCTSTR amount, LPCTSTR resp_chin, LPCTSTR smchtid, LPCTSTR stermid, LPCTSTR reference, LPCTSTR sdate, LPCTSTR stime, LPCTSTR info)
{
int iRet;
//umsstr_out bank_out;
//iRet=UMS_Query_Dll(&bank_out);
rescode="abc";
bank_code="aaa";
card_no="bbbb";
return 0;
}


我JS
TisSelfService.Query2(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14);
alert(a1);


a1返回是空的 OCX
[解决办法]
引用:
Quote: 引用:

返回BSTR指针啊

short CTisSelfServiceCtrl::Test(BSTR FAR* ErrorCode)
{

*ErrorCode="10";
return 0;
}
返回不了啊?

我想通过JS传进来几个参数,然后通过OCX去赋值 JS能接受到吗? 我这么做 总提示
error C2440: '=' : cannot convert from 'char [3]' to 'unsigned short *'
BSTR Far* 是short型? 不是字符串指针吗? 我想传出字符串给JS 应该怎么做 谢谢了


是你自己不会用,怎么可以CString直接转BSTR勒?
[解决办法]
idl 函数声明如下
函数最后一个参数,[out,retval]BSTR*

js调用
s = xx.fun( ... );不包括最后的参数。比如idl中参数有4个,那么js调用只需要传3个,最后一个是返回值。

读书人网 >VC/MFC

热点推荐