summaryrefslogtreecommitdiff
path: root/ipl/packs/loadfuncpp/examples/callicon.icn
diff options
context:
space:
mode:
Diffstat (limited to 'ipl/packs/loadfuncpp/examples/callicon.icn')
-rw-r--r--ipl/packs/loadfuncpp/examples/callicon.icn24
1 files changed, 24 insertions, 0 deletions
diff --git a/ipl/packs/loadfuncpp/examples/callicon.icn b/ipl/packs/loadfuncpp/examples/callicon.icn
new file mode 100644
index 0000000..c3e10ee
--- /dev/null
+++ b/ipl/packs/loadfuncpp/examples/callicon.icn
@@ -0,0 +1,24 @@
+
+link loadfuncpp
+
+procedure main()
+ icall := loadfuncpp("./callicon.so", "iexample")
+
+ write( icall(f, ["Argument passed"]) )
+end
+
+procedure f(arg)
+ write(arg)
+ write("Called from C++")
+ every write( g(arg) )
+ x := create g(arg)
+ while writes(@x)
+ write()
+ return "Result string!"
+end
+
+procedure g(arg)
+ suspend !arg
+end
+
+