Every now and again I come across this error and start frantically trying to remember what caused it last time. Microsoft sure has a knack for making error messages easy to understand! 🙂
Well, if you Google the error, you will find a few possible reasons for this. For the most part, it is known that this is a CLR exception caused by the underlying COM interaction. (0x43 0x4f 0x4d = COM)
Seeing how .NET architecture is largely based on COM, this does not really narrow things down.
For me (I disclaimer this because obviously it sounds like this error can occur in several different cases), the error was caused by incorrect parameters to the DllImport attribute class. Say, something like:
[DllImport ("native.dll", EntryPoint="?nativeFunction@NativeClass@Namespace@@SAXPBG@Z")] static void nativeFunction(wchar_t * param);
This essentially acts as a dynamic link that is established at runtime whenever the nativeFunction(…) is called. If this is the place you get the error message, the reason is imported function cannot be found. Either the library name is wrong (or it is not in the execution path) or the specified entry point is wrong (function does not exist in the DLL or you have specified the decoration incorrectly).
Use Depends to check if the native.dll exports the function and the decoration is specified correctly.
Hope this helps.