Search code examples
c#dynamicpinvoke

Dynamically P/Invoking a DLL


What is the best way to dynamically P/Invoke unmanaged code from .NET?

For example, I have a number of unmanaged DLL's with common C-style exports between them. I would like to take the path to a DLL and then P/Invoke a function based on the exported name. I would not know the DLL name until runtime.

Basically, what is the equivalent of LoadLibrary and GetProcAddress for .NET? (I have existing code which uses these functions to accomplish the same goal, entirely in unmanaged code).


Solution

  • This article describes a typesafe managed wrapper for GetProcAddress that should help you out.

    https://learn.microsoft.com/en-us/archive/blogs/jmstall/type-safe-managed-wrappers-for-kernel32getprocaddress