2013-05-11 77 views
-1

好的,请原谅我,如果我的问题对于某些人来说是多余的或愚蠢的,但是我一直在努力完成2周的成就而没有成功。VB6创建类对象

我有一个DLL控制一个调谐卡。所有与调谐卡和软件提供的作品,但我需要创建一个VB应用程序来控制部分卡。我有DLL,我会打电话tuner.dll。我在vb6中引用了tuner.dll。我可以在对象浏览器中查看它的类和成员。

我试图创建一个类的新实例,它会告诉我当前的频道号播放。当我在浏览器中查看tuner.dll时,我显示了很多类,没有什么大不了的,名称几乎告诉他们做什么。我将要使用的是IHCTuneRequest。我想我正在使用这个,因为这个班级的成员是get_ChannelNumber。现在,当我陷入困境时。

Dim curchannel as tunerlib 
set curchannel = new tunerlib 
curchannel.IHCTuneRequest.get_channelnumber 

语法和过程看起来是否正确?出于某种原因,我无法得到任何工作。 感谢

+1

不,这一切都是错误的。不可能猜测coclass名称可能是什么,即实现IHCTuneRequest的名称。联系供应商寻求支持。 – 2013-05-11 11:48:12

+0

什么是tunerlib? – RBarryYoung 2013-05-11 11:51:33

+0

你需要库作者的一些东西来告诉你如何使用它。文档,示例代码或您可以直接提问的人。猜测不会让你到达任何地方。 – MarkJ 2013-05-11 18:49:15

回答

1

我VB6是有点生疏,但是从我所记得,

,参照本页面

http://msdn.microsoft.com/en-us/library/aa243324(v=VS.60).aspx

http://msdn.microsoft.com/en-us/library/aa243341(v=vs.60).aspx

首先,你必须声明你的外部动态链接库参考,在MODULE级别。 和/或还宣布潜艇和功能例如像

[With Alias name] 
Declare Function IHCTuneRequest Lib "tuner" Alias "#132"() As Long 
Declare Function IHCTuneRequest Lib "tuner" Alias "AnotherAlias"() As Long 

[Without Alias name] 
Declare Function IHCTuneRequest Lib "tuner"() As Long 

注意一些子程序和/或功能可以预期的参数

[With Alias name] 
Declare Function IHCTuneRequest Lib "tuner" Alias "#132"(byval Hwnd as long) As Long 
Declare Function IHCTuneRequest Lib "tuner" Alias "AnotherAlias"(byval Hwnd as long) As Long 

[Without Alias name] 
Declare Function IHCTuneRequest Lib "tuner"(byval Hwnd as long) As Long 

最后,如果你收到任何错误你不提或者您调用DLL的任何反馈?我必须问......你呢?收到任何错误?如果有的话,你会收到什么错误?

+0

谢谢大家的信息。这是我的理解,就像你看到的那样,如果能够将dll添加为参考,就没有必要在模型级别声明dll。我得到的错误是作为调谐器在Dim curchannel上。当输入代码即Dim curchannel as tuner时,我得到一个选项列表,其中有IHCTuneRequest作为选项。但是,当我到达设定的行时,选项列表不包含IHCTneRequest。我会按照上面的建议,看看我需要什么,再次感谢。 – 2013-05-11 13:16:03

+0

您是否有错误编号以符合错误? – Zeddy 2013-05-11 13:18:08

+0

没有错误消息。如果我能够从项目引用菜单中引用dll,是否需要使用interop包装?我能够使用上面提供的代码来声明函数,但是我无法找到入口点。这是我用过的。声明函数IHCWTunerequest库“tune.dll”(ByVal get_channelnumber长)只要。我得到的参数不是可选的。我假定它指的是get_channelnumber。当我输入这个时,我意识到get_channelnumber是一个方法而不是返回变量。我认为。我将不得不看看dll并查看返回的内容。 – 2013-05-11 13:53:04