zig/test/standalone/load_dynamic_library/main.zig
Andrew Kelley 48de57d824 add basic std lib code for loading dynamic libraries
this is going to only work for very basic libraries;
I plan to slowly add more features over time to support more
complicated libraries
2018-06-16 17:01:23 -04:00

18 lines
519 B
Zig

const std = @import("std");
pub fn main() !void {
const args = try std.os.argsAlloc(std.debug.global_allocator);
defer std.os.argsFree(std.debug.global_allocator, args);
const dynlib_name = args[1];
var lib = try std.DynLib.open(std.debug.global_allocator, dynlib_name);
defer lib.close();
const addr = lib.lookup("add") orelse return error.SymbolNotFound;
const addFn = @intToPtr(extern fn (i32, i32) i32, addr);
const result = addFn(12, 34);
std.debug.assert(result == 46);
}