2013-05-11 3 views
-1

Хорошо, простите меня, если мой вопрос лишний или глупый для некоторых, но я пытался что-то сделать в течение 2 недель без успеха.VB6 создать объект класса

У меня есть dll, которая управляет картой тюнера. Все работает с картой тюнера и программным обеспечением, но мне нужно создать приложение vb для управления частью карты. У dll у меня есть, я позвоню tuner.dll. Я упоминал tuner.dll в vb6. Я могу просматривать его классы и члены в браузере объектов.

Я пытаюсь создать новый экземпляр класса, который скажет мне текущий номер канала. Когда я смотрю tuner.dll в браузере, у меня есть много классов, не имеющих большого значения, имена в значительной степени говорят, что они делают , Тот, который я собираюсь использовать, - IHCTuneRequest. Я думаю, я использую этот, потому что член этого класса get_ChannelNumber. Теперь вот когда я застрял.

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

Является ли синтаксис и процедура правильной? По какой-то причине я не могу заставить ее работать. Благодаря

+1

Нет, все неправильно. Невозможно догадаться, что такое название коккаля, которое реализует IHCTuneRequest. Обратитесь к поставщику за поддержкой. –

+0

Что такое 'tunerlib'? – RBarryYoung

+0

Вам нужно что-то от автора библиотеки, чтобы рассказать вам, как его использовать. Документация, образец кода или кто-то, на кого вы можете задать прямой вопрос. Угадывание никуда не денется. – MarkJ

ответ

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 в качестве тюнера, я получаю список опций, который имеет параметр IHCTuneRequest в качестве опции. Но когда я добираюсь до заданной строки, список опций не включает IHCTneRequest. Я буду следовать приведенным выше предложениям и посмотреть, что это заставляет меня, еще раз спасибо. –

+0

У вас есть номер ошибки, чтобы идти вместе с ошибкой? – Zeddy

+0

Ошибка messsage. Если я могу ссылаться на dll из меню ссылок на проект, мне нужно использовать обходную оболочку? Я смог использовать приведенный выше код для объявления функции, но я не могу найти точку входа. Вот что я использовал. Объявить функцию IHCWTunerequest Lib "tune.dll" (ByVal get_channelnumber как долго) Как долго. Я не могу аргументировать. Я предполагаю, что это относится к get_channelnumber. Когда я печатаю это, я понял, что get_channelnumber - это метод, а не возвращаемая переменная. Я думаю. Мне придется посмотреть на dll и посмотреть, что возвращается. –

Смежные вопросы