2013-07-04 2 views
1

Этот вопрос почти тождественен здесь: Dynamically invoke a method in DLL За исключением того, что мне это нужно в VB6. Я помню, где-то читал, что VB6 поддерживает отражение ActivX-модулей.VB6 - метод динамического вызова в ссылках DLL

Я просто хочу загрузить действительную VB6 DLL и вызвать метод «Say» и передать один параметр «Hello».

Может ли кто-нибудь предоставить образец кода, аналогичный образцу в ответе на упомянутый вопрос?

Спасибо.

ответ

2

В дополнение к ответу Алекса, как прокомментировал Боб.

Dim Obj As Object: Set Obj = CreateObject("Prog.Id") 
' Just Do It! 
' A runtime error will occur if the object does not have a suitable method. 
Obj.Say("Hello") 
+0

Итак,« Prog.Id »будет путь к моей DLL? И если это так, будет ли CreatObject принимать байтовый массив вместо пути? –

2

Вы можете использовать CallByName:

Dim Obj As Object: Set Obj = CreateObject("Prog.Id") 
CallByName Obj, "Say", VbMethod, "Hello" 

или Typelib Info library.

+2

Вам не нужно использовать CallByName, просто перейдите и вызовите метод поздней привязки, если вы знаете его имя во время компиляции. – Bob77

+0

Где я могу поместить путь к моей DLL? В ссылках? –

+0

В обоих представленных ответах я пронизан, «Ошибка времени выполнения» 429 ': Компонент ActiveX не может создать объект « –

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