Re[4]: Создание объекта COM в рантайме БЕЗ регистрации *.dll
От: Vi2 Удмуртия http://www.adem.ru
Дата: 21.11.07 13:16
Оценка: 11 (2)
Здравствуйте, NewEmptyName, Вы писали:

NEN>И еще вариант , который работает:

NEN>Private Declare Function CreateObjectFromFile1 Lib "D:\WorkFlow\OrderFW\OrderFW\Debug\OrderFW.dll" (ByVal strLibrary As String, ByVal strClassName As String) As stdole.IUnknown

NEN>  Dim objCtrl As Object
NEN>    Set objCtrl = CreateObjectFromFile1(s1, s2) 
NEN>    objCtrl.TestMethod ("123")'не работает

Это должно работать, т.к. VB запросит нужный интерфейс, потому что stdole.IUnknown и Object не одинаковы, и их нужно привести через QueryInterface, что VB и сделает. Простое указание Declare ... As Object не пройдет, т.к. реально передается IUnknown интерфейс, в виртуальной таблице которого нет необходимых функций, нужных для реализации вызова "TestMethod".
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.