Вызов СОМ объекта из VB 6
От: MicroCell  
Дата: 01.12.09 00:47
Оценка:
Приветствую. Возник вопрос.

У меня есть некий COM объект, написанный на С++. Он экспортирует 3 функции:

HRESULT Reset();
HRESULT SetOpen(DOUBLE fOpen);
HRESULT AddBar(DOUBLE fOpen, DOUBLE fHigh, DOUBLE fLow, DOUBLE fCLose, ULONG iVolume);

Я пытаюсь подключить его под вижуал бэйсиком. Под VB 2008 всё работает. Под VB 6.0, при попытке вызова третьей функции, я получаю сообщение об ошибке:

Compile error:
Function or interface markerd as restricted, or the function uses an Automation type not supported in Visual Basic.

СОМ объект изначально был скомпилирован под VС++ 2008, затем я создал аналогичный проект под VC++ 6.0, Функции с одним параметром или вообще без параметров вызываются без проблем. В чём тут дело? VB 6 не умеет вызывать функции с несколькими параметрами?

Код вызова функции в VB 6

Dim s As Stock

s.Reset
s.SetOpen 22.12
s.AddBar 10.5, 15.4, 8.3, 11.1, 1500000

Спасибо за ответ.
А у Вас нет кого нибудь с гравицаппой и пепелацем?
Re: Вызов СОМ объекта из VB 6
От: MicroCell  
Дата: 01.12.09 01:17
Оценка:
Разобрался сам, тему можно закрывать )
А у Вас нет кого нибудь с гравицаппой и пепелацем?
Re[2]: Вызов СОМ объекта из VB 6
От: squid_etc  
Дата: 14.12.09 15:42
Оценка:
Здравствуйте, MicroCell, Вы писали:

MC>Разобрался сам, тему можно закрывать )


А причина была в double.

Может расскажете как выглядит итоговый код?
Re[3]: Вызов СОМ объекта из VB 6
От: ZAMUNDA Земля для жалоб и предложений
Дата: 16.12.09 16:31
Оценка:
Здравствуйте, squid_etc, Вы писали:

MC>>Разобрался сам, тему можно закрывать )


_>А причина была в double.

IMHO в ULONG.

_>Может расскажете как выглядит итоговый код?

IMHO
HRESULT Reset();
HRESULT SetOpen(DOUBLE fOpen);
HRESULT AddBar(DOUBLE fOpen, DOUBLE fHigh, DOUBLE fLow, DOUBLE fCLose, LONG iVolume);
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.