Can be a windows dll used/interfaced with Haskell's FFI(Foreign Function Interface) on a non windows OS? For example if I have OSX, can I interface a .dll with FFI (use the dll functions) ?

Example: I have a my.dll file that was written and compiled in Windows. With Haskell's FFI (Foreign Function Interface) I can write a program in Haskell that will load my.dll and use the functions from it. The question is: can I write a Haskell program in OSX and use my.dll via FFI, or does it has to be Haskell program compiled in Windows (since I want to use my.dll)?

有帮助吗?

解决方案

If you're trying to load an external dynamic library, it has to be compiled for the platform you're trying to load it on. On Windows, it'll be a DLL file, on Linux it's a .so file ("shared object"), on OSX I have no idea what it'll be... But if you want to load a file that essentially contains machine code, it has to be compiled for the target platform you want to run it on.

If you're asking "can I get Haskell to figure out which file it needs to load based on the platform I'm running on", well that is another question... ;-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top