Функция Dll возвращает 1 - PullRequest
       14

Функция Dll возвращает 1

0 голосов
/ 01 февраля 2012

Я использую Java (JNA), чтобы использовать функцию из стороннего DLL-файла. Функции, которые я вызываю, получают целочисленное значение 1.

После прочтения я обнаружил, что это возвращаемое значение традиционно равно 0, если все работает правильно.

Интересно, так ли это всегда или есть какой-нибудь способ определить, каким он должен быть?

В файле .h в комплекте с .dll есть комментарий

// rc: EXIT_SUCCESS означает НЕТ ОШИБКИ

После функции.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Да, ноль обычно означает успех в мире C / C ++.

За несколько дней до обработки исключений у вас должен был быть способ указать сбой, а возвращаемое значение было в значительной степени зарезервировано для сбоя / успеха. Что касается того, что означает «1», вам придется поискать в заголовке dll функцию, которая возвращает «1», и посмотреть, есть ли в них что-либо об условиях ошибки. Существует слишком много возможностей, не видя код или зная больше о DLL, чтобы дать какие-либо простые ответы.

Как называется функция? Что он пытается сделать? Что вы можете сделать, если знаете, что функция не работает?

0 голосов
/ 01 февраля 2012

Проверьте фактическую документацию DLL, должен быть способ сказать, что не так.Если ничего не помогает, попробуйте вызвать GetLastError () WinAPI - может появиться значимый код ошибки.Также попробуйте просмотреть выходные данные отладки во время вызова функции - некоторые следы могут присутствовать даже в Release build

...