2013-07-20 2 views
2

В прошлом, используя REBOL/Command, это сработало нормально. Теперь, я пытаюсь сделать load/library.dll, который я скомпилировал, и нет /library уточнения для load. Что эквивалентно в Rebol 3? Должен ли я сделать 'extension и import?Как сделать загрузку/библиотеку

ответ

4

Да, Rebol 3 в настоящее время не содержит DLL-интерфейс Rebol 2-like, который был ограничен и не предлагал много полезных опций для переноса библиотек и, например, обратные вызовы также были очень ограниченными. Rebol 3 решил ситуацию, введя механизм расширения, который включает в себя немного кода C.

Была также инициатива по созданию улучшенного DLL-интерфейса Rebol 2 в виде расширения Rebol 3, но проект еще не сработал, хотя после конференции ReCode кто-то утверждал, что это произойдет.

То, что вы также можете использовать, это Red/System: это язык, подобный Rebol, но очень близкий к уровню C, поэтому довольно легко обернуть вокруг. Kaj De Vos создал несколько примеров, которые показывают, как write an Rebol 3 extension as Red/System DLL.

+0

Есть ли хорошие руководства/учебники по использованию Red/System DLL Extensions? Примеры сами по себе не так ясны, как могут быть ... – rgchris

2

Поскольку на это был дан ответ, некоторые версии Rebol3, например. Atronix, есть внешняя библиотека функций собраны в так что вы можете

make library! %some.dll 

См https://github.com/zsx/r3/blob/atronix/make/tests/ms-drives.r для примера на окнах, и https://github.com/zsx/c2r3/blob/master/demos/gtk-demos/gtk-demo.reb для комплексного примера Linux.

Смежные вопросы