- Home /
DLL fallback path error
Hey! I get a really strange path problem for you.
I've made a program which import a DLL file I've made. It works fine on my computer (using Win8).
But when I try to run it on another computer (Win7) I get the following error when the application tries to find my DLL file:
Fallback handler could not load library
C:/Users/Public/RoboZone2/RoboZone_Data/Mono/.\C:/Users/Public/RoboZone2/RoboZone_Data/Plugins/MyPlugin.dll
Has anyone encountered something similar? What's up with the mix of "/" and "\\"?
Any help would be really appreciated!
Thanks :)
I've got the same problem myself. It runs fine for me in the editor, and after a build, but when I give the build to my friend and he runs it on his PC, the DLL fails to load.
We're both running Win7, and when we look at the output_log for him, it shows that same strange "double path" thing.
Another thing to note is that after all those "Fallback handler" lines, it shows a DllNotFoundException with a path that points straight to the DLL. We've literally taken that exact path and copied/pasted it into explorer, and the file is there.
Well, first what kind of DLL? I could slap $$anonymous$$icrosoft for using that extention for both, native and managed DLLs. Second it might by a security problem on the PC. What rights does the user have which starts the game / application?
Next thing you should try is moving the whole game to a more general path which doesn't belong to a certain user.
Have any of you figured this out? Because I'm running into the exact same problem.
For anyone in the future who is also running into this problem: in my case this was solved by changing the Unity project's architecture from x86_64 to just plain x86. It turned out the dll I was importing wasn't x64 compatible, so check for that. Also, I needed to manually copy the .dll to the same folder where my game's executable resided. Once I did this everything worked.
Answer by Nyxo · Mar 25, 2014 at 02:16 AM
The solution to my problem was actually that my DLL had dependencies that weren't being found. For whatever reason, Unity interpreted this as being unable to find the DLL, when in reality it was just a matter of being unable to LOAD the DLL.
I used dependency walker to check out the DLL on my friend's system, and found out that it was missing some DLLs from a microsoft redistributable package.
I tried this, and while it did miss some dependencies (API-$$anonymous$$S-WIN-CORE-$$anonymous$$ERNEL32-PRIVATE-L1-1-1.DLL, API-$$anonymous$$S-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL, and API-$$anonymous$$S-WIN-SERVICE-PRIVATE-L1-1-1.DLL), I also have an older version of the application where it -does- work, and that DLL is missing the exact same dependencies.
Your answer
