Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.04.12;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.04.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
15-1234461166
Кое кто
2009-02-12 20:52
2009.04.12
Можно ли восстановить телефон?


15-1234474201
Юрий
2009-02-13 00:30
2009.04.12
С днем рождения ! 13 февраля 2009 пятница


15-1234382192
Brigador
2009-02-11 22:56
2009.04.12
Установка компонента, ПОМОГИТЕ !!!


15-1234477200
Германн
2009-02-13 01:20
2009.04.12
Какая-то непонятная "нестыковка" Борланда и МС


2-1235471812
nstur
2009-02-24 13:36
2009.04.12
PageSetup





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский