Ich schreibe eine Anwendung, in der Benutzer nach einer DLL suchen muss verwendet werden. Wenn diese DLL dann nicht die erforderliche Methodendefinition enthält, wird eine Fehlermeldung angezeigt. Früher habe ich folgenden Code:Extrahieren von Methodennamen aus einer nicht verwalteten DLL (VB Dll) über C# Code
private void CheckDll()
{
string dllName;
string methodName;
bool isMethodFound = false;
OpenFileDialog browseFile = new OpenFileDialog();
browseFile.Filter = "DLL : |*.dll;*.DLL |OCX Files| *.ocx|All File|*.*";
try
{
if (browseFile.ShowDialog() != DialogResult.Cancel)
{
methodName = CommonMod.GetMethodName(1);
dllName = browseFile.FileName;
Assembly loadedDll = Assembly.LoadFile(dllName);
foreach (Type memberType in loadedDll.GetTypes())
{
if (memberType.IsClass)
{
MethodInfo method = memberType.GetMethod(methodName, BindingFlags.Static | BindingFlags.Public);
if (method != null)
{
isMethodFound = true;
}
}
}
if (!isMethodFound)
{
MessageBox.Show(methodName + " method not found in DLL.", "Script Generator", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
Debug.Print(e.Message);
}
}
}
}
Dies funktioniert gut mit .net DLLs aber mit VB-DLL es fehlschlägt, ist es eine Möglichkeit, es für vb DLLs zu tun. danke im voraus.
@Ramhound. VB 6.0 ist nicht verwaltet. Bitte aktualisieren Sie Ihr Wissen – Ishan
um verwaltet zu werden, muss es von einer virtuellen Maschine/Laufzeit * interpretiert * werden. .NET-Code läuft in der CLR, die Bytecode "interpretiert" und Maschinencode ausführt. VB6-Anwendungen sind im Wesentlichen COM-Anwendungen. Seit VB5 konnten sie in native ausführbare Dateien kompiliert werden. Mit anderen Worten, VB6 wird nicht verwaltet. – Will