Я использую несколько библиотек DLL с одним и тем же именем, и я хотел бы иметь только один путь для поиска DLL при использовании dllimport.
Пока мой код:
'Trying to remove default search paths
<System.AttributeUsage(System.AttributeTargets.Assembly Or System.AttributeTargets.Method, AllowMultiple:=False)>
Public NotInheritable Class DefaultDllImportSearchPathsAttribute
Inherits Attribute
End Class
'Trying to add my own path
<DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
Public Shared Function SetDllDirectory(ByVal lpPathName As String) As Long
End Function
'Importing my DLL
<DllImport("A.dll", CallingConvention:=CallingConvention.StdCall)>
Public Shared Sub B(<MarshalAs(UnmanagedType.BStr)> ByRef X As String)
End Sub
Dim path As String = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\A\", "path", Nothing)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SetDllDirectory(path)
End Sub
Он продолжает загружать другую DLL и никогда не достигает стадии поиска DLL в «пути».Как я могу сделать эту работу?
Ссылки: Как мне указать путь [DllImport] во время выполнения?