Hallo liebe Community,
Ich stehe wohl wieder einmal auf dem schlauch, ich hab mir ein neues Projekt zur Brust genommen und habe ein Problem das für mich äußerst unlogisch erscheint, wahrscheinlich übersehe ich da was hoffentlich könnt ihr mir helfen also:
Ich habe eine HauptForm und eine Hauptdll und eine Subdll
Die HauptForm lädt dynamisch die Hauptdll diese wiederum dynamisch die Subdll, soweit funktioniert alles super.
Jetzt muss ich aber aus der Subdll Daten (String) in die HauptForm bekommen, um dies zu bewerkstelligen habe ich eine Form geschrieben:
der Form1 die eigenschaften von meiner Form vererbt.
mein Gedanke dabei war dass, ich die Hauptform als Parameter durch die dlls reiche bis hin zu meiner Subdll, dort ereicht sie die Funktion wo ich die Daten rüberschicken muss, da führt die Funktion der Subdll, den folgenden Befehl aus,
Nach diesem Befehl wird das Event OnBeChanged ausgelöst (in meiner Hauptform) und schwups hab ich den String da wo ich ihn haben wollte.
So der Wurm steckt nun darin dass, eine Fehlermeldung bei der übergabe meiner Parameter vorkommt undzwar genau an der stelle wo die Parameter von der Hauptform in die Hauptdll übergeben werden.
Spoiler anzeigen
Die Fehlermeldung lautet: Das Objekt mit dem Typ "BlitzCenter.Form1" kann nicht in den Typ "LoadAssambly.CenterForm" konvertiert werden.
BlitzCenter ist das Projekt mit der Hauptform.
LoadAssably ist das Projekt mit der Hauptdll.
Schonmal danke das ihr euch das überhaupt durchgelesen habt
Ich stehe wohl wieder einmal auf dem schlauch, ich hab mir ein neues Projekt zur Brust genommen und habe ein Problem das für mich äußerst unlogisch erscheint, wahrscheinlich übersehe ich da was hoffentlich könnt ihr mir helfen also:
Ich habe eine HauptForm und eine Hauptdll und eine Subdll
Die HauptForm lädt dynamisch die Hauptdll diese wiederum dynamisch die Subdll, soweit funktioniert alles super.
Jetzt muss ich aber aus der Subdll Daten (String) in die HauptForm bekommen, um dies zu bewerkstelligen habe ich eine Form geschrieben:
der Form1 die eigenschaften von meiner Form vererbt.
mein Gedanke dabei war dass, ich die Hauptform als Parameter durch die dlls reiche bis hin zu meiner Subdll, dort ereicht sie die Funktion wo ich die Daten rüberschicken muss, da führt die Funktion der Subdll, den folgenden Befehl aus,
Nach diesem Befehl wird das Event OnBeChanged ausgelöst (in meiner Hauptform) und schwups hab ich den String da wo ich ihn haben wollte.
So der Wurm steckt nun darin dass, eine Fehlermeldung bei der übergabe meiner Parameter vorkommt undzwar genau an der stelle wo die Parameter von der Hauptform in die Hauptdll übergeben werden.
VB.NET-Quellcode
- Private Sub LoadMainDll()
- Try
- sparam(0) = sgamepfad
- sparam(1) = Me
- sparam(2) = SelectGame.statusinfo.cName
- sloadassambly = Assembly.LoadFile(Environment.CurrentDirectory & "\LoadAssambly.dll")
- Dim typs() As Type = sloadassambly.GetTypesFor Each typ As Type In typs
- If typ.IsClass = True And typ.IsPublic = True Then
- sobj = sloadassambly.CreateInstance(typ.FullName)
- Dim m As MethodInfo() = sobj.GetType.GetMethods
- For Each mobj As MethodInfo In m
- If mobj.Name = "LoadGame" Then
- mobj.Invoke(sobj, sparam)'Hier!!! :(
- End If
- Next
- End If
- Next
- Catch ex As Exception
- MsgBox("Fehler beim Laden der " & Environment.CurrentDirectory & "\LoadAssambly.dll" & vbNewLine & ex.Message)
- End Try
- End Sub
Die Fehlermeldung lautet: Das Objekt mit dem Typ "BlitzCenter.Form1" kann nicht in den Typ "LoadAssambly.CenterForm" konvertiert werden.
BlitzCenter ist das Projekt mit der Hauptform.
LoadAssably ist das Projekt mit der Hauptdll.
Schonmal danke das ihr euch das überhaupt durchgelesen habt