Hi there, guys!
So, here is my problem, I’m using MonoGame to port my game to iOS with C#, and trying to make fmod work on this environment is super painful and frustrating, I’m almost giving up.
There are a some questions that I would like to make.
1 – I’m supposed to use normally the dll files that came on the Windows fmodex API?
1.1 – I already made a post (on the wrong forum section) about trying to load those dlls, the answer was that, on iOS, i need to change the dll string to "__Internal" and it worked, but when I try to use on the simulator it is returning me a System.EntryPointNotFoundException, and "Native linking failed, undefined symbol" when trying to deploy to the device.
That made me think, do I really was supposed to work with the same dll file that i use on my Windows projects?
2 – If I’m not supposed to work with those dll’s, so the other possibility is that the right thing to do is try to link those .a files that on the iOS fmodex API, but i never linked any native library, so it’s way too difficult for me. Do you guys have any tip on how to link those libraries?
- LadyApollo asked 3 years ago
- No, you will need to use the FMOD libraries appropriate for the platform you are running on.
1.1 __Internal is the correct thing to do for platforms where you statically link FMOD, on platforms where you dynamically link you need to use DLLImport and point at the dynamic library. For Mac the dynamic library is a dylib but simply setting the const string dll to "fmod" (like you do on Windows) should be sufficient for the simulator. Keep in mind that the iOS simulator is simply a Mac application, it does not emulate iOS binary code.
- Download the Mac package of FMOD and use the fmod dylibs in place of the Windows DLLs, this should get you working on the simulator.
Should the same process work when trying to get FMOD working on Android through C# / MonoDroid?
I’ve included my Android .so files within a ‘lib’ folder in the project root (within subdirectories by CPU architecture) but receive a DllNotFoundException for fmod.dll when trying to instantiate the FMOD.System class (I’ve tried the const string dll as both fmod and fmod.dll to no success).
Apologies for hijacking the iOS-related thread.
- chaostheorygames answered 3 years ago
I’ve not tried it personally, but our Unity integration does this with FMOD 5.
Setting the "public const string dll" to "fmodex" (for FMOD 4) and "fmod" (for FMOD 5) should be sufficient for it to find the library on most platforms.
Mono will add the appropriate file extension for the platform, and prepend "lib" if necessary.
Your error says "fmod.dll", so try removing the ".dll" from the dll string and see if that helps.
Please login first to submit.