2
这是我所面临的我的时间更离奇的问题之一,它的最佳像许多问题在传统的ASP为例进行说明:经典ASP传递对象到VB6 COM DLL的方法 - 类型不匹配
Set thing = Server.CreateObject("ClassName") ' a C++ COM dll class
Set tool = Server.CreateObject("OtherClassName") ' a VB6 COM dll class
这不起作用
tool.Method thing
这确实工作
Set session("thing") = thing
tool.Method session("thing")
当它不工作,我收到了TY pe mismatch,我非常困惑,不知道从哪开始说实话。任何指针的人?
该方法的参数不是一个byref,但我认为你的想法,从会议传递它可以修改如何表示对象的vtable类型方面值得研究。谢谢! –
VB6 COM dll方法未定义ByVal或ByRef(默认情况下不使用ByVal?),当我将其更改为ByVal时,它可以与会话或本地定义的变量一起使用!感谢YMS的建议,我不知道是否有一种方法来跟踪参数类型(只是出于兴趣) –
我认为VB默认COM对象和字符串(VT_BSTR)是ByRef,虽然我找不到引用确认此声明。 – yms