views:

110

answers:

1

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
As I read it, this will only work if you have the DLL source?
Steve Townsend
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
I don't have source. I don't have .lib
Patrice Pezillier
@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
@Patrice Pezillier - are you sure you don't have at least a header file for the DLL interface?
Steve Townsend
if I have header file .h and dll can I use P/Invoke Interop Assistant ?
Patrice Pezillier
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