DllImport findet dll nicht



  • Hallo,

    ich verwende eine Klasse, die die VLC dlls zum Abspielen von Videos benutzt.

    Der Aufruf sieht folgendermaßen aus:

    [DllImport("libvlc", CallingConvention = CallingConvention.StdCall, ExactSpelling = true)]
            [SuppressUnmanagedCodeSecurity]
            public static extern void libvlc_release(IntPtr libvlc_instance_t);
    

    Nun muss die libvlc.dll aber im gleichen Verzeichnis wie die .exe sein.

    Gibt es eine Möglichkeit DllImport zu verwenden, aber den Pfad an dem nach der Dll gesucht wird anzupassen?

    Ich habe bereits versucht mit SetDllDirectory den Pfad zu ändern jedoch scheint dies nicht zu funktionieren.

    Private Declare Function SetDllDirectoryA Lib "kernel32.dll" (name As String) As Boolean
    

    und der Aufruf:

    If SetDllDirectoryA("C:\Program Files (x86)\VideoLAN\VLC\") = False Then
                MsgBox("VlcLib nicht gefunden")
    End If
    

    Hat jemand eine Idee?
    Danke



  • Das CurrentDirectory wird glaube ich auch nach der dll durchsucht:
    http://msdn.microsoft.com/de-de/library/system.io.directory.setcurrentdirectory.aspx



  • Danke für die Hilfe.

    Nun wird die dll gefunden scheint mit dem Pfad zusammen zu hängen. Dieser darf nicht mit einem \ enden.

    C:\Program Files (x86)\VideoLAN\VLC\

    so funktioniert es

    C:\Program Files (x86)\VideoLAN\VLC


Log in to reply