asp向VC++ COM 组件传数组参数的问提?再线

sxd78 2003-08-16 10:09:45
请个小例子,和说明!!!谢谢指教
...全文
19 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shudingbo 2003-10-17
  • 打赏
  • 举报
回复
>>masterz(MS MVP) ( )
谢谢
shudingbo 2003-10-10
  • 打赏
  • 举报
回复
classid 不是 id
id用于在页面中定位具体的控件,
classid 用于 在操作系统中定位ocx
__________________
另外:
test(long ss);中参数是个长整型变量,而你调用时,跟的是字符串
lengnuan 2003-09-16
  • 打赏
  • 举报
回复
to seventhmm(一线飘飘) :

<object id=ctrTest classid=clsid:838C58E9-1C5C-409B-AA18-B156DCB65DD9 Width=20 Height=20> </object>

ctrTest.test("hi")

flinming 2003-09-05
  • 打赏
  • 举报
回复
up
seventhmm 2003-09-05
  • 打赏
  • 举报
回复
asp中传递参数给ocx控件如何传递?
例如:控件中有个方法test(long ss);
asp中用<object classid="test" ....>对象加入控件
然后调用test.test("hi")
却不成功,但未提示什么错误
请问一般的参数如何传递啊?
masterz 2003-08-16
  • 打赏
  • 举报
回复
[id(1), helpstring("method ExpectArray")] HRESULT ExpectArray([in] VARIANT varArray,[out,retval]BSTR* outstr);
STDMETHODIMP CArrayTest::ExpectArray(VARIANT pvarArray,BSTR* outstr)
{
// accepte array from vbscript
_bstr_t bstmp;
VARIANT* varArray;
if(pvarArray.vt==(VT_VARIANT|VT_BYREF))
{
varArray = pvarArray.pvarVal;
}
else
varArray = &pvarArray;
if(VT_ARRAY|VT_BYREF|VT_VARIANT==varArray->vt)
{
VARIANT* strarray;
SAFEARRAY* psa = *(varArray->pparray);
//SafeArrayCopy( *(varArray->pparray),&psa);
SafeArrayAccessData(psa,(void**)&strarray);
UINT uDim = SafeArrayGetDim(psa);
if(uDim==1)
{
long lLbound,lRbound;
SafeArrayGetLBound(psa,1,&lLbound);
SafeArrayGetUBound(psa,1,&lRbound);
for(long i=lLbound;i<=lRbound;i++)
{
if(strarray[i].vt==VT_BSTR)
bstmp +=strarray[i].bstrVal;
else if(strarray[i].vt==VT_EMPTY)
{
char buf[64];
wsprintf(buf,"element%d is empty",i);
bstmp +=buf;
}
}
}
else
bstmp = "wrong dimension number";
SafeArrayUnaccessData(psa);
}
*outstr = bstmp.copy();
return S_OK;
}

set obj = createobject("AcceptArray.ArrayTest")
dim s(3)
s(1) = "aaa"
s(2) = "bbb"
s(3) = "ccc"
obj.expectarray(s)

set obj = nothing
sxd78 2003-08-16
  • 打赏
  • 举报
回复
那该怎么做呢,请给出简单代码
shanhe 2003-08-16
  • 打赏
  • 举报
回复
asp是vbscript,所以不存在数组,全部是变体变量,所以数组需要以变体变量传入,在com中自己判断检查后转换为数组。

3,245

社区成员

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

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