Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

События ActiveX   Найти похожие ветки 

 
DinoRay ©   (2004-04-21 11:28) [0]

Такая ситуация есть проимпортированный ActiveX компонент, у него есть событие
MyEvent(Sender : TObject; MyVariable OleVariant)
при создании в DLL как только возникает это событие сразу AccessViolation.
При чем пофигу, что динамически создавать, что ложить на форму.
В обычном проэкте все нормально. Кто-нить сталкивался, в чем могут быть грабли?


 
VMcL ©   (2004-04-21 11:53) [1]

Код в студию.


 
Digitman ©   (2004-04-21 12:46) [2]

в сообщении об AccessViolation есть и конкретная инф-ция об исключении ... она, эта инф-ция, наверно, Пушкину адресована, а не тебе ... поэтому ты и игнорируешь ее, хотя эта инф-ция могла бы существенно прояснить ситуацию


 
VMcL ©   (2004-04-21 12:49) [3]

>>Digitman ©  (21.04.04 12:46) [2]

Эт точно, а если ещё Stop on exceptions включить да Call Stack вызвать...


 
DinoRay ©   (2004-04-21 13:47) [4]

Код... форма на ней компонент, вызывем из dll, если обработчик не назначен все Ок. Токо назначаем хоть пустой обработчик AccessViolation  

AccessViolation адресован конечно мне ну и что прояснит такая
ошибка чтения по адресу.. че в дебагер загонять и тэйсить...

ага я наверное не знаю че такое Call Stack смотрели
Sender все нормально указазатель на объект мой (MyVar:OleVariant - ???)

состояние одинаковое, что с проэкта что с dll токо AccessViolation в dll

Я с ActiveX плотно не работал вот я и спрашиваю, мож каки-ето подводные камни есть при вызове с dll?


 
VMcL ©   (2004-04-21 14:39) [5]

>>DinoRay ©  (21.04.04 13:47) [4]

Телепаты в отпуске.


 
DinoRay ©   (2004-04-21 19:52) [6]

Вот такая-же ситуация..

http://delphi.chertenok.ru/forum/viewtopic.php?t=632&postdays=0&postorder=asc&start=7&sid=1b16c17a4878f5698194856fbfdec9 62
-----------------------
задавал свой вопрос в отдельной теме, но мне не удалось получить ни одного конкретного ответа. А в этой теме упоминалось про передачу OleVariant как параметра. Вот я и решил попытать удачу.
Я задам вопрос в этой теме, а если что то я думаю в ваших силах выделить его в отдельную тему.

Вопрос.
Имеется ActiveX компонент. Компонент генерит событие со следующими параметрами:(В примере описаны два события)

_DTestActXEvents = dispinterface
["{......-....-....-....-............}"]
procedure EventVariant(index: Smallint; oleData: OleVariant); dispid 1;
procedure EventString(index: Smallint; const strData: WideString); dispid 2;
end;

TTestActXEventVariant = procedure(Sender: TObject; index: Smallint; oleData: OleVariant) of object; stdcall;
TTestActXEventString = procedure(Sender: TObject; index: Smallint; const strData: WideString) of object; stdcall;

private
FOnEventVariant: TTestActXEventVariant;
FOnEventString: TTestActXEventString;

published
property OnEventVariant: TTestActXEventVariant read FOnEventVariant write FOnEventVariant;
property OnEventString: TTestActXEventString read FOnEventString write FOnEventString;

Данное описание Дельфи создало автоматически.

Следующий код создан формой для обработки события.

procedure TForm1.TestActX1EventString(Sender: TObject; index: Smallint;
const strData: WideString);
begin
...
end;

procedure TForm1.TestActX1EventVariant(Sender: TObject; index: Smallint;
oleData: OleVariant);
begin
...
end;

Событие ...EventString работает без ошибок. Значение strData передается правильно.
Событие ...EventVariant генерит исключительную ситуацию(Неверный тип и т.д.). Значение oleData не передается.

Если вставлять ActiveX в С++ или в Бейсик, то оба события работают без ошибок...

Как добиться правильной передачи параметров в событии ...EventVariant в Дельфи?
----------------------------------------------------

Кто-че скажет?



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.06 c
1-1106021836
Valek
2005-01-18 07:17
2005.01.30
статическая BPL


1-1105716876
race1
2005-01-14 18:34
2005.01.30
действия и свойства


6-1099904771
alexb_1
2004-11-08 12:06
2005.01.30
Исходник download-менеджера


1-1106202977
pavel_guzhanov
2005-01-20 09:36
2005.01.30
Утечка памяти


3-1103996779
Russko
2004-12-25 20:46
2005.01.30
InterBase не хочет сохранять изменения (