Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.036 c
6-1100163904
Klopan
2004-11-11 12:05
2005.01.30
TidHostNameServer


14-1105628391
Cosinus
2005-01-13 17:59
2005.01.30
Блин, замучался ужО...


1-1105862615
syte_ser78
2005-01-16 11:03
2005.01.30
Как запретить повторный запуск программы?


1-1105458355
odessey
2005-01-11 18:45
2005.01.30
коды для принтера


3-1102971229
serko
2004-12-13 23:53
2005.01.30
QReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский