0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 7
1

Определить вызов функции из dll, написанной на Си

04.10.2017, 15:37. Показов 1447. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Есть dll-ка, написанная на СИ. В дллке есть функция:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
err_t beltHash(octet hash[32], const void* src, size_t count)
{
    void* state;
    // проверить входные данные
    if (!memIsValid(src, count) || !memIsValid(hash, 32))
        return ERR_BAD_INPUT;
    // создать состояние
    state = blobCreate(beltHash_keep());
    if (state == 0)
        return ERR_OUTOFMEMORY;
    // вычислить хэш-значение
    beltHashStart(state);
    beltHashStepH(src, count, state);
    beltHashStepG(hash, state);
    // завершить
    blobClose(state);
    return ERR_OK;
}
и её описание в h файле
C
1
2
3
4
5
6
7
8
9
10
11
12
/*! \brief Хэширование
 
    Определяется хэш-значение hash буфера [count]src.
    \return ERR_OK, если хэширование успешно завершено, и код ошибки
    в противном случае.
    \remark Буферы могут пересекаться.
*/
err_t beltHash(
    octet hash[32],     /*!< [out] хэш-значение */
    const void* src,    /*!< [in] данные */
    size_t count        /*!< [in] число октетов данных */
);
Подскажите, пожалуйста, как описать вызов данной функции в делфи?
Нужно ли добавлять соглашение о вызове и как определить какое именно?

Добавлено через 5 часов 38 минут
В общем сделал так:

Delphi
1
2
3
  
  THASH = array [1..32] of byte;
  procedure beltHash (hash:THASH; pdata: pointer; count: integer); cdecl; external 'name1.dll';
вызываю так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  hash : THASH;
  count: integer;
  data: array [1..20] of byte
  pdata: pointer;            
BEGIN
  ...
  hash:=...
  data:=...
  pdata:= @data[1];
  count:=...
 
  beltHash (hash, pdata, count);
Работает!)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2017, 15:37
Ответы с готовыми решениями:

Вызов программой, написанной на С++, функции из dll, написанной на Assembler (явное подключение dll)
Доброго времени суток!Задали лабораторную работу: программа, написанная на с++ должна подключать...

Вызов функции из dll написанной на C
Привет всем! Возникла такая задача, решить не могу ни как. Есть dll. В ней есть функция (вроде...

Вызов функции из DLL, написанной на Delphi
Здрасте, У меня тут такая ситуация: Рыскал как то я, по просторам интернета, решение 1 проблемы,...

Вызов функции из dll написанной на delphi из python
Импортировал ctypes, подключился к dll. Есть например такая функция: function...

0
04.10.2017, 15:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2017, 15:37
Помогаю со студенческими работами здесь

вызов dll написанной на с++
Всем доброго дня!!! Ребята помогите пожалуйста не могу получить результат в Delphi из вызываемой...

Реализовать вызов dll, написанной на Delphi, в C++
Приветствую! Только недавно наал изучать dll и не очень понимаю почему вылезает ошибка в коде. Что...

Вызов функций из DLL, написанной на CBuilder.
Всем привет! Есть немаленький софт, написанный на CBuilder. Нужно подгрузить в программе на...

Вызов функции написанной на ассемблере
Вопрос заключается в следующем, когда я пытаюсь запустить программу, компелятор выдает:&quot;Ошибка...

Импорт функции из DLL написанной на С++
Есть dll файл написанный на С++ (Visual Studio) Работал с этой библиотекой в Autoit (скриптовый...

Подгрузка функции из dll, написанной на C++
Добрый день. Написал dll-ку на С++. Она состоит из файлов .h и .cpp. В файле .h прописано ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru