Do you know a soft which automatically generates C# code (with [DllImport] attributes in .cs) from a native DLL in order to use this DLL in a C# code?
+6
A:
Checkout the P/Invoke Interop Assistant:
In marshalling, there are a bunch of attributes and rules. Understanding all those attributes and rules seem a bit daunting. In order to make developing work more efficient and easier on those attributes and the rules, P/Invoke Interop Assistant comes out. It is a toolkit that helps developers to efficiently convert from C to managed P/Invoke signatures or verse visa. This is conceptually similar to TlbImp for COM Interop which generates managed proxy entry points based on some formal description of the unmanaged side but it works for P/Invoke. The toolkit was first released on MSDN Magazine website in Jan, 2008.website in Jan, 2008.
Darin Dimitrov
2010-09-22 16:53:22
As I read it, this will only work if you have the DLL source?
Steve Townsend
2010-09-22 16:55:14
If you don't have source or at least .lib file, you have no way to know what parameters the DLL functions expect (if the declarations are stdcall, as they usually are)
Eugene Mayevski 'EldoS Corp
2010-09-22 16:56:18
I don't have source. I don't have .lib
Patrice Pezillier
2010-09-22 17:04:20
@Patrice, I am afraid you are out of luck then. I hope you have at least the documentation which will be helpful when manually generating the signatures.
Darin Dimitrov
2010-09-22 17:05:27
@Patrice Pezillier - are you sure you don't have at least a header file for the DLL interface?
Steve Townsend
2010-09-22 17:22:08
if I have header file .h and dll can I use P/Invoke Interop Assistant ?
Patrice Pezillier
2010-09-22 18:52:08
Yes it should work with a header file. Checkout [this blog post](http://blogs.microsoft.co.il/blogs/sasha/archive/2008/01/12/p-invoke-signature-generator.aspx).
Darin Dimitrov
2010-09-22 18:56:29