Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I am using a plugin DLL that I created in Visual C++ Express 2010 on windows 7 64 bit Ultimate Edition. The DLL functions properly on the machine that it was originally created on.

The problem is that the DLL is not functioning in the Unity3d Editor on another machine and giving an error that basically states that the DLL is missing some of its dependencies. The target machine is running Windows 7 Home 64 bit (if this is relevant)

Results from the error log of Dependency Walker:

Error: The Side-by-Side configuration information for "c:\users\dewayne\desktop\shared\vrpnplugin\unityplugin\build\release\OPTITRACKPLUGIN.DLL" contains errors. The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail (14001). Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Error: Modules with different CPU types were found. Warning: At least one delay-load dependency module was not found. Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

The Visual C++ Express 2010 project and solution file can be found here: https://docs.google.com/leaf?id=0B1F4pP7mRSiYMGU2YTJiNTUtOWJiMS00YTYzLThhYWQtMzNiOWJhZDU5M2M0&hl=en&authkey=CJSXhqgH The zip is 79MB and also contains its dependencies.

The DLL in question is OptiTrackPlugin.dll

share|improve this question
    
I had a similar problem. I never found a solution, the only thing that worked for me was to compile the plugin on the target machine. Since you are using VRPN I guess it could be factible, since you seem to be using special hardware so you won't run this on many machines, right? –  Carnby Feb 15 '11 at 10:15
    
In the message it says "use the command-line sxstrace.exe tool for more detail" - I have done this in the past and found it to be quite useful. –  Kylotan Apr 21 '11 at 13:19
add comment

1 Answer

Which C runtime is the plugin DLL built with? If you use the 'DLL' runtime (Multithreaded DLL, I think it's called; I don't have Visual C++ in front of me), you'll also need the matching CRT distributable installed on the target machine (you're building a DLL which references the DLL version of the C runtime, in other words). If you use the non-DLL runtime (just called Multithreaded), then the C runtime will be statically linked to your DLL (as such the plugin DLL will be bigger but won't have the CRT DLL dependency).

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.