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

Вниз

0xc0000008 при подключении процедуры из DLL   Найти похожие ветки 

 
Petrovich   (2008-04-15 10:30) [0]

Здравствуйте, мастера.
Подскажите, что я делаю не так:
Есть некая DLL с именем mqic32.dll, лежит в "d:\IBM\WebSphere MQ\bin\" (путь этот в системной PATH присутствует)
обявляю
procedure MQDISC(......);cdecl;external "mqic32.dll";

потом использую
MQDISC(......);

При запуске скомпиленного EXE-шника ошибок не выдает.
Если же пытаюсь из-под среды запустить, то получаю ошибку 0xc0000008.
А мне надо проект подебажить.
Кто-нить знает, как это вылечить?


 
tesseract ©   (2008-04-15 11:53) [1]


> procedure MQDISC(......);cdecl;external "mqic32.dll";


cdecl точно ? А с указателями  которые в DLL нормально всё  ?


 
Petrovich   (2008-04-15 12:30) [2]


> cdecl точно ? А с указателями  которые в DLL нормально всё ?

Без cdecl то же самое (ошибки остаются), но при вызове MQDISC ловим еще и "акцес_виалейшн".
Это попытка "дернуть" API от IBM WebSphere MQ - там с указатели нормальные, ибо поставляемые с пакетом приблуды работают без ошибок.

Интересно вот что - если делать так:
//  procedure MQDISC(......);cdecl;external "mqic32.dll";
...
 Handle := LoadLibrary("mqic32.DLL");
...
//  MQDISC(......);
то Handle равен 0!
Если объявление и вызов MQDISC раскомментить, то Handle <> 0, но ошибки остаются!


 
Сергей М. ©   (2008-04-15 12:49) [3]


> Без cdecl то же самое


Ты что же, соглашение о вызове от балды указал ?)


> Handle равен 0


Вызови GetLastError и узнай почему.


 
Petrovich   (2008-04-15 13:02) [4]


> Ты что же, соглашение о вызове от балды указал ?)

Нет.
Уточняю: IBM офицально не декларирует в MQ работу с Delphi. На их родном сайте был найдет модуль-обертка для вызова MQ API (автора не помню, но это не сами АйБиЭмеры). Строка
procedure MQDISC(......);cdecl;external "mqic32.dll";
из этого модуля.
Где-то полгода назад был писан софт - тогда все нормально дебажилось.
Недавно встал вопрос о "докрутить" - получаю вышеописанные грабли.
Или у меня MQ/Дельфи/Систему за это время переклинило или я че-то не понимаю.


 
tesseract ©   (2008-04-15 14:19) [5]

Не факт, что тут ошибка. Перезаписать память можно где угодно, а AV схватить тут.


 
palva ©   (2008-04-15 22:51) [6]

Может быть в новой версии dll добавился параметр?
8 - это случайно не значение какой-нибудь локальной переменной? Зайдите внутрь функции в окне CPU и выясните, как обрабатываются параметры и правильно ли. Надо надеяться, это происходит в начале работы функции.


 
Petrovich   (2008-04-16 10:17) [7]

Может я че-то не догоняю...
Ошибка валиться в среде ДО ПЕРВОГО ШАГА, т.е. нажимаю Ф8, получаю ошибку (!) и только потом попадаю на самый первый begin. Непосредственный вызов функции происходит шагов через 10.
При чем тут параметры?


 
han_malign ©   (2008-04-16 10:19) [8]


> 8 - это случайно не значение какой-нибудь локальной переменной?

0xc0000008 - OS Exceptions - Invalid handle

телепатирую - смотрите инициализацию локальных переменных...


 
han_malign ©   (2008-04-16 10:28) [9]


> Handle := LoadLibrary("mqic32.DLL");
> Handle равен 0
>
> Ошибка валиться в среде ДО ПЕРВОГО ШАГА

- угу, а путь указать не судьба? Или для начала убедиться что он пристуствует в переменной PATH среды окружения?
Оттуда и Invalid handle.


 
Petrovich   (2008-04-16 13:23) [10]

2han_malign:

> - угу, а путь указать не судьба? Или для начала убедиться
> что он пристуствует в переменной PATH среды окружения?Оттуда
> и Invalid handle.


> Есть некая DLL с именем mqic32.dll, лежит в "d:\IBM\WebSphere
> MQ\bin\" (путь этот в системной PATH присутствует)

Вниметельнее читайте, сударь, а уж потом под****те!

зы. Вопрос снимается - я не знал, что добрый админ накатил апдейт на MQ, а мне ничего не сказал про это. Снес все нах и переставил без апдейта - все встало на свои места.
Всем спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1234508153
Andryk
2009-02-13 09:55
2009.04.12
Складской учет


15-1234427160
Эстет
2009-02-12 11:26
2009.04.12
Христианский крест на сайте программистов...


15-1234154556
123-ий
2009-02-09 07:42
2009.04.12
Вопрос по уничтожению объектов


2-1235541964
Кирей
2009-02-25 09:06
2009.04.12
Нумерация ячеек в таблицах Worda


15-1234187406
321
2009-02-09 16:50
2009.04.12
Докеры