On Friday, 1 September 2017 at 20:22:21 UTC, Adam D. Ruppe wrote:
On Friday, 1 September 2017 at 20:17:54 UTC, bitwise wrote:
So I'm thinking now..is this as easy as just figuring out how
it's mangled and calling dlsym()?
Yeah, that's what I was thinking. You can use the .mangleof
property to get the mangle
import core.sys.windows.winbase;
import std.string;
export extern(C) T foo(T)() {
return 1234;
}
int main(string[] argv)
{
int x = foo!int;
auto handle = GetModuleHandleA(null);
auto fooInt = cast(int function())GetProcAddress(handle,
foo!int.mangleof.toStringz);
writeln(fooInt());
return 0;
}
Awesome.. this actually works.