Search code examples
c#windowswinapidllpinvoke

Check if a DLL is present in the system


quick question. I want to find out if a DLL is present in the system where my application is executing.

Is this possible in C#? (in a way that would work on ALL Windows OS?)

For DLL i mean a non-.NET classic dll (a Win32 dll)

(Basically I want to make a check cause I'm using a DLL that may or may not be present on the user system, but I don't want the app to crash without warning when this is not present :P)


Solution

  • Call the LoadLibrary API function:

    [DllImport("kernel32", SetLastError=true)]
    static extern IntPtr LoadLibrary(string lpFileName);
    
    static bool CheckLibrary(string fileName) {
        return LoadLibrary(fileName) == IntPtr.Zero;
    }