From 27b954f95b33df0a028f5ace554a2acb3cc331f2 Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Fri, 4 Mar 2016 09:14:49 -0800 Subject: [PATCH] alien.libraries: Add a way to see if a dll has a function. --- basis/alien/libraries/libraries.factor | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/basis/alien/libraries/libraries.factor b/basis/alien/libraries/libraries.factor index 0232821c2b..951987405f 100755 --- a/basis/alien/libraries/libraries.factor +++ b/basis/alien/libraries/libraries.factor @@ -29,6 +29,11 @@ C: <library> library : lookup-library ( name -- library ) libraries get at ; +ERROR: no-library-named name ; +GENERIC: dlsym? ( name string/dll -- ? ) +M: string dlsym? dup lookup-library [ nip dll>> dlsym? ] [ no-library-named ] if* ; +M: dll dlsym? dlsym >boolean ; + : open-dll ( path -- dll dll-error/f ) [ dlopen dup dll-valid? [ f ] [ dlerror ] if ] [ f f ] if* ;