aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2016-12-16 20:18:23 +0000
committerGinger Bill <bill@gingerbill.org>2016-12-16 20:18:23 +0000
commitd4457e9fa4cfb3a62beaf30e72bffcdea6a0c52b (patch)
treef4a700c969ec7b50943b31935d01e43c78102bed /code
parent9634b28b0723a42463ba6f2879ff533ea2c7cb14 (diff)
Minor changes
Diffstat (limited to 'code')
-rw-r--r--code/demo.odin56
1 files changed, 1 insertions, 55 deletions
diff --git a/code/demo.odin b/code/demo.odin
index 7b9cb6f12..6f6610260 100644
--- a/code/demo.odin
+++ b/code/demo.odin
@@ -1,60 +1,6 @@
-#import win32 "sys/windows.odin";
#import "fmt.odin";
#import "sync.odin";
-#import "hash.odin";
-#import "math.odin";
-#import "mem.odin";
-#import "opengl.odin";
-#import "os.odin";
-#import "utf8.odin";
-
-Dll :: struct {
- Handle :: type rawptr;
- name: string;
- handle: Handle;
-}
-
-load_library :: proc(name: string) -> (Dll, bool) {
- buf: [4096]byte;
- copy(buf[:], name as []byte);
-
- lib := win32.LoadLibraryA(^buf[0]);
- if lib == nil {
- return nil, false;
- }
- return Dll{name, lib as Dll.Handle}, true;
-}
-
-free_library :: proc(dll: Dll) {
- win32.FreeLibrary(dll.handle as win32.HMODULE);
-}
-
-get_proc_address :: proc(dll: Dll, name: string) -> (rawptr, bool) {
- buf: [4096]byte;
- copy(buf[:], name as []byte);
-
- addr := win32.GetProcAddress(dll.handle as win32.HMODULE, ^buf[0]) as rawptr;
- if addr == nil {
- return nil, false;
- }
- return addr, true;
-}
-
main :: proc() {
- lib, lib_ok := load_library("example.dll");
- if !lib_ok {
- fmt.println("Could not load library");
- return;
- }
- defer free_library(lib);
-
- proc_addr, addr_ok := get_proc_address(lib, "some_thing");
- if !addr_ok {
- fmt.println("Could not load 'some_thing'");
- return;
- }
-
- some_thing := (proc_addr as proc());
- some_thing();
+ fmt.println("Hellope");
}