https://d.puremagic.com/issues/show_bug.cgi?id=12443
--- Comment #3 from Andrej Mitrovic <[email protected]> 2014-03-23 03:42:05 PDT --- (In reply to comment #2) > ----- > version (Windows) extern(dll, "user32.dll") > extern(C) void foo(); > > void main() > { > foo(); // would fail on Posix since the entire block becomes invisible > } > ----- That wasn't a proper argument since the dll string name can be generated at compile-time. To provide a slightly better argument, let's say you have "foo.dll", "foo_deb.dll" on Windows, and "foo.a", "foo_deb.a" on Posix. You'd end up writing: ----- version (Windows) { debug enum dll_name = "foo.dll"; else enum dll_name = "foo_deb"; } else version (Posix) { debug enum dll_name = "foo.a"; else enum dll_name = "foo_deb.a"; } extern(dll, dll_name) void foo(); ----- But then there might be issues where the shared library is named differently based on the OS itself, some platform-specific naming conventions, x86 vs x64, etc.. It would be simpler if you could just pass the shared library directly to DMD. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
