Форум: "Corba";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизСобытия 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 вся ветка
Форум: "Corba";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.088 c