Uniwii DLL found in editor but not in build version


I have a project using Uniwii for wiimote detection. It works fine in the editor, but it doesn’t work in the build version (it’s a pc/standalone build, as we test the game on pc).

After some research, it appears that there is a problem with the dll import for the build version:

DllNotFoundException: C:/Users/zelda/Desktop/Builds/MyAwesomeProject_Data/Plugins/UniWii.dll
  at (wrapper managed-to-native) WiiMote:wiimote_start ()

  at WiiMote.Start () [0x00000] in <filename unknown>:0 

The dll is at the right place, in the Plugin floder. I checked the Plugin folder of the build
version too: the dll is here.

In the script Wiimote.cs, the dll is imported like this:

[DllImport ("UniWii")]
private static extern void wiimote_start();

So, why do I have a dll problem with the build version while the game works fine in editor? How should I fix it?

Thanks in advance for your answers :slight_smile:

Perhaps you have a 32 bit dll and build a 64 bit standalone? That won’t work.

(Try ensuring you build 32 bit in Unity)

I had the same problem with one of my custom DLL. It was in the right folder but Unity didn’t seem to find it. I resolved this by adding other DLL that my DLL needed (like dx9, winsock, etc.).

You may search for some other DLL that are needed for UniWii.dll. You can do this with Dependency Walker : http://www.dependencywalker.com/

Open your DLL with dependency walker and check which DLL are missing, try to add them in the same folder as your .exe.

Thanks for your answer! I made a 32-bit build only instead instead of a 64-bit one and it worked. There was also some dll missing apparently (according to Dependency Walker), we fixed it.

Thanks a lot :slight_smile:

See ya !