PInvoker Visual Studio Addin imports C++ header files (even the windows SDK header files) together with their associated dlls and generates C#/VB.NET pinvoke definitions. These definitions can then be inserted into C# or VB.NET code. Users select from a list of available functions, structs, enums and delegates removing the need to manually find the method definitions in the header files or in the C++ library documentation.
A choice of possible parameter types for C++ parameters with multiple pinvoke signatures (e.g. char* which can be a string, StringBuilder, byte or IntPtr).
Automatic insertion of using/imports statements into source code files for the namespaces used in the definition.
No need to find decorated symbol names for functions in dlls (by using depends.exe etc). PInvoker Visual Studio Addin automatically inserts the correct dll exported symbol name into the function declaration.
Ability to move forwards and backwards through selections and jump to types referenced in the current pinvoke declaration.
Compatible with VS2005, VS2008 and VS2010.
PInvoker also imports C++ header files and dll files. But unlike PInvoker Visual Studio Addin it exports immediately usable .NET interop assemblies containing all methods, classes, structs, enums and delegates contained in the C++ header files and dlls. PInvoker is best employed as a batch importer when an interface for a large library needs to be generated.
Features include :
Generation of interface dlls for entire libraries in seconds. .NET Interface dlls are ready to use immediately.
Unique export of C++ typedefs as PInvoker interface classes. Code written using a class library produced by PInvoker strongly resembles the equivalent C++, making conversion from native example code much easier. (e.g. DWORD in the C++ file will be represented by a DWORD class in the interface.)
The fully compiled class library exported by PInvoker can be used from any .NET language.
PInvoker also contains a command line application suitable for running in post-build steps or continuous build environments.
Compatible with the Compact Framework 2.0 and above.