diff options
Diffstat (limited to 'code')
| -rw-r--r-- | code/demo.odin | 56 |
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"); } |