Страницы

Поиск по вопросам

вторник, 7 апреля 2020 г.

Совместимы ли методы из библиотеки Delphi с P/Invoke?

#c_sharp #delphi #net

                    
Совместимы ли методы из библиотеки, написанной на Delphi с P/Invoke?
И если нет - есть ли какая либо возможность сделать их совместимыми? 

Есть доступ к исходникам .dll.
    


Ответы

Ответ 1



Для начала - стоит посмотреть в исходниках, с каким соглашением о вызовах функции из библиотеки экспортируются. Если там stdcall или cdecl - то такая функция без проблем может быть вызвана через P/Invoke. Если же там соглашение не указано - то так просто не получится. В таком случае, если исходники библиотеки менять нельзя - самым простым решением будет прослойка из еще одной библиотеки на Delphi: procedure Foo(...); external 'MyLib.dll'; // ... procedure Foo_Std(...); stdcall; begin Foo(...); end; // ... exports Foo_Std name 'Foo';

Комментариев нет:

Отправить комментарий