2
\$\begingroup\$

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

\$\endgroup\$
2
  • \$\begingroup\$ 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? \$\endgroup\$
    – Carnby
    Feb 15, 2011 at 10:15
  • \$\begingroup\$ 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. \$\endgroup\$
    – Kylotan
    Apr 21, 2011 at 13:19

2 Answers 2

1
\$\begingroup\$

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).

\$\endgroup\$
0
\$\begingroup\$

If the DLL is not a .Net assembly (i.e. cannot be loaded in the References folder) put it in the root folder (not the assets)

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .