Вызов функций C / C ++ в динамических и статических библиотеках в D

У меня проблемы с пониманием того, как взаимодействовать с библиотеками C / C ++, как статическими (.lib / .a), так и динамическими (.dll / .so), в D. Насколько я понимаю, это ' s можно указать компилятору DMD связываться с файлами .lib, и что вы можете конвертировать файлы .dll в .lib с помощью инструмента implib, который предоставляет Digital Mars. Кроме того, я наткнулся на эту страницу , которая подразумевает возможность вызова функций в .dll путем преобразования файлов заголовков C в файлы интерфейса D. Эквивалентны ли оба этих метода? Подойдут ли эти же методы для файлов библиотеки Unix? Кроме того, как можно ссылаться на функции, перечисления и т. Д. Из этих библиотек, и как указать компилятору D связываться с этими библиотеками (я использую, в частности, VisualD)? Если бы кто-нибудь мог предоставить несколько примеров ссылок на файлы .lib, .dll, .a и .so из кода D, я был бы очень благодарен.

5
задан Mark LeMoine 1 June 2011 в 16:53
поделиться