Найдено 4 результата

xwind
23.05.2010 17:16:58
Форум: Общее
Тема: VBA и FPC dll, неверная передача
Ответы: 7
Просмотры: 17478

Re: VBA и FPC dll, неверная передача

Нашел решение.
На всякий случай напишу здесь.
1. Используется stdcall
2. При объявлении DLL в VBA явно указывается ByVal

Код: Выделить всё

Declare Function echo Lib "echo.dll" (ByVal a As integer) As integer

все заработало :)

Всем спасибо, кто принимал участие, тему можно закрывать. :mrgreen:
xwind
23.05.2010 16:12:42
Форум: Общее
Тема: VBA и FPC dll, неверная передача
Ответы: 7
Просмотры: 17478

Re: VBA и FPC dll, неверная передача

По документации VBA понимает только stdcall. Попробовал с cdecl - VBA явно мне написал "bad dll call convention".
Я уже перелопатил кучу примеров и документации связанные с использованием DLL под MS Office, a так же про типы данных в разных языках, но как-то понимания, в чем подвох, не добавилось
xwind
23.05.2010 14:08:38
Форум: Общее
Тема: VBA и FPC dll, неверная передача
Ответы: 7
Просмотры: 17478

Re: VBA и FPC dll, неверная передача

{$mode objfpc} не помогло, все осталось так же. Тип Integer в VBA 16-bit (2-Byte) поэтому я поменял его на Long 32-bit (4-byte). Но от этого связка работать нормально не стала. Возврат значения из dll происходит нормально, проверил возвратом конкретного числа заданного в dll. Проблема возникает при ...
xwind
23.05.2010 00:00:42
Форум: Общее
Тема: VBA и FPC dll, неверная передача
Ответы: 7
Просмотры: 17478

VBA и FPC dll, неверная передача

Не могу справиться с проблемой. Я написал dll на FPC, вызываемую через макрос Excel. Проблема в том, что Excel'ю из dll возвращается неправильное значение (-2850 вместо 0). Я не могу понять в чем может быть проблема, потому что эта dll работает прекрасно с exe файлом написанным на FPC.
Листинг dll ...