in reply to Import a DLL from C# to Perl

2 thoughts.One is to place your DLL in the GAC where .NET looks for dependmcies.You have however to sign the assembly in order to do that.Check How to: Install an Assembly into the Global Assembly Cache

The second is to use Process Explorer to check where your process is trying to load your dll from,and then place it in there.

Truth is that you have like 3 levels of indirection;A C++ programm calls a C# programm, both under managed CLR, which calls into the unmanaged Win32 API, most probably through P/Invoke, to get the messagebox function.What are you actually trying to do?