这个错误在VB6中意味着什么?
标记为受限制的函数或接口,或者该函数使用Visual Basic中不支持的自动化类型。
当我调用windows xp及更高版本附带的dll的特定方法(在system32中称为upnp.dll)时,我一直得到它
答案 0 :(得分:9)
这是从类型库中检索到的FindByType()声明:
HRESULT FindByType(
[in] BSTR bstrTypeURI,
[in] unsigned long dwFlags,
[out, retval] IUPnPDevices** pDevices);
注意第二个参数,unsigned long。 VB6不支持无符号类型。它不是VB.NET或C#中的问题,它们确实支持它们。
如果您安装了Windows SDK,则可以修复此问题。如果您有最新版本的Visual Studio,则应该拥有它。使用Visual Studio命令提示符,然后:
您现在可以添加upnp.tlb而不是upnp.dll,您不应再收到错误。 -
答案 1 :(得分:3)
好吧,错误消息意味着你正在调用一个不能被VB6绑定的函数,可能是因为它有参数或者VB6不支持的数据类型的返回值。我有时通过编写一个简单的C ++ COM对象来解决这个问题,该对象调用了函数并将其“翻译”为VB6兼容。
由于各种拼写错误,您有时也会收到此错误消息,但我认为您已经发现在Google上进行搜索,所以我假设您已经检查过了。
如果您发布代码(或至少是您遇到问题的函数名称),您可能会得到更好的答案。
答案 2 :(得分:1)
我得到了同样的错误但是当我更改了我的数组名称时,错误就消失了。
“Map”显然不是可接受的数组名称。
错误代码:map(day, min) = Trim(Str(Int(r / 1000)))
没有错误代码:mapsymbol(day, min) = Trim(Str(Int(r / 1000))
)