aboutsummaryrefslogtreecommitdiff
path: root/core/dynlib/example
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-01-19 18:43:02 +0100
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2024-01-19 18:43:02 +0100
commite8102a40d03b06fbb48318577cbcbec8325ae1a9 (patch)
tree8336fa7d501d0d6aa71e4df633dd1c92f81c206f /core/dynlib/example
parent737677f1b669a188e8867a46bde088a14f01dc77 (diff)
Add hot reload support to `dynlib.initialize_symbols`
Diffstat (limited to 'core/dynlib/example')
-rw-r--r--core/dynlib/example/example.odin11
1 files changed, 10 insertions, 1 deletions
diff --git a/core/dynlib/example/example.odin b/core/dynlib/example/example.odin
index 78b14f5c0..f12233b0a 100644
--- a/core/dynlib/example/example.odin
+++ b/core/dynlib/example/example.odin
@@ -26,7 +26,16 @@ main :: proc() {
// The library's Handle (to unload) will be stored in `sym._my_lib_handle`. This way you can load multiple DLLs in one struct.
count, ok := dynlib.initialize_symbols(&sym, "lib.dll", "foo_", "_my_lib_handle")
defer dynlib.unload_library(sym._my_lib_handle)
- fmt.printf("ok: %v. %v symbols loaded from lib.dll (%p).\n", ok, count, sym._my_lib_handle)
+ fmt.printf("(Initial DLL Load) ok: %v. %v symbols loaded from lib.dll (%p).\n", ok, count, sym._my_lib_handle)
+
+ if count > 0 {
+ fmt.println("42 + 42 =", sym.add(42, 42))
+ fmt.println("84 - 13 =", sym.sub(84, 13))
+ fmt.println("hellope =", sym.hellope^)
+ }
+
+ count, ok = dynlib.initialize_symbols(&sym, "lib.dll", "foo_", "_my_lib_handle")
+ fmt.printf("(DLL Reload) ok: %v. %v symbols loaded from lib.dll (%p).\n", ok, count, sym._my_lib_handle)
if count > 0 {
fmt.println("42 + 42 =", sym.add(42, 42))