我是这样做的,但不行,出现类型不对的错误..1.定义方法:
[id(4), helpstring("方法TestArray")] HRESULT TestArray([in] BSTR* inArray, [out,retval] BSTR* outArray);
2.实现
STDMETHODIMP CDBWrite::TestArray(BSTR* inArray, BSTR* outArray)
{
......
inArray[1]=::SysAllocString(L"xxxxx")
inArray[2]=::SysAllocString(L"nnnnn")
...... outArray=inArray; return S_OK;
}
3.ASP中调用
<%
Dim arr(5)Set Obj=Server.CreateObject("ATLWEB.DBWrite")
arr=Obj.TestArray(arr)
Response.Write(arr(1))
%>
错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: 'TestArray'
/willtopcrm/atl/atl.asp, 第 15 行
是否我用的方法错了,还是......请问如何解决,先谢了!!!!!!!!!!
[id(4), helpstring("方法TestArray")] HRESULT TestArray([in] BSTR* inArray, [out,retval] BSTR* outArray);
2.实现
STDMETHODIMP CDBWrite::TestArray(BSTR* inArray, BSTR* outArray)
{
......
inArray[1]=::SysAllocString(L"xxxxx")
inArray[2]=::SysAllocString(L"nnnnn")
...... outArray=inArray; return S_OK;
}
3.ASP中调用
<%
Dim arr(5)Set Obj=Server.CreateObject("ATLWEB.DBWrite")
arr=Obj.TestArray(arr)
Response.Write(arr(1))
%>
错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: 'TestArray'
/willtopcrm/atl/atl.asp, 第 15 行
是否我用的方法错了,还是......请问如何解决,先谢了!!!!!!!!!!
解决方案 »
- vc6的问题 。要崩溃了
- 关于全局list,struct 变量的问题??
- 使对话框中的控件大小随父窗体大小变化而变化,程序没有错误,可以为什么对话框变大了,但是控件还有原来大小,附程序,谢谢
- 求教:关于光栅操作的问题(急!!!)
- CEdit中如何显示不同颜色和字体。
- 向五角进军!散分!
- 请问线程的设计问题
- 能否在SDK程序中使用MFC類?(UP有分)
- Atl创建的ActiveX控件能怎么才能接收到WM_XXX的消息
- VC6登录QQ空间,QQ密码加密的问题!密码老是跟腾讯的加的不一样
- 使用Dao操作Access数据库的时候。增加纪录的问题,能否提供增加纪录的例子?
- 为什么老出现 xxx component not found! 我如何解决?
不行啊,我把BSTR改成SAFEARRAY后,编译时出现以下错误.能否再说清楚一点吗?c:\temp\atlweb\DBWrite.h(23) : error MIDL2139 : type of the parameter cannot derive from void or void * : [ Type 'PVOID' ( Parameter 'inArray' ) ]
c:\temp\atlweb\DBWrite.h(23) : error MIDL2105 : pointee / array does not derive any size : [ Field 'rgsabound' of Struct 'tagSAFEARRAY' ( Parameter 'inArray' ) ]
c:\temp\atlweb\DBWrite.h(23) : error MIDL2139 : type of the parameter cannot derive from void or void * : [ Type 'PVOID' ( Parameter 'outArray' ) ]
c:\temp\atlweb\DBWrite.h(23) : error MIDL2105 : pointee / array does not derive any size : [ Field 'rgsabound' of Struct 'tagSAFEARRAY' ( Parameter 'outArray' ) ]
c:\temp\atlweb\DBWrite.h(23) : error MIDL2040 : [out] only parameter cannot be a pointer to an open structure : [ Parameter 'outArray' of Procedure 'TestArray' ( Interface 'IDBWrite' ) ]
LINK : fatal error LNK1240: 未能编译 IDL 内容
唉!!我改来改去都不行啊.应该就是以下这三个地方吧1:
STDMETHODIMP CDBWrite::TestArray(BSTR* inArray, BSTR* outArray)
{
// TODO: 在此添加实现代码 return S_OK;
}2:
[id(4), helpstring("方法TestArray")] HRESULT TestArray([in] BSTR* inArray, [out,retval] BSTR* outArray);3:
STDMETHOD(TestArray)(BSTR* inArray, BSTR* outArray);帮烦帮帮忙,我太差了......
STDMETHODIMP CDBWrite::TestArray(SAFEARRAY** psa)
{
// TODO: 在此添加实现代码 return S_OK;
}
2
[id(4), helpstring("method GetStringArray")] HRESULT GetStringArray([in, out] SAFEARRAY(BSTR) *psa);
3
STDMETHOD(TestArray)(/*[in, out]*/ SAFEARRAY** psa);
你用这个函数试试!