Klassenbibliothek in Visual Basic .net

Hallo zusammen!

Ich habe in Visual Basic.Net 2003 eine Klassenbibliothek erstellt und möchte diese DLL später in einer .net fähigen Sprache verwenden. Zunächst probiere ich diese DLL aber in einem anderen vb .net projekt aus um zu schauen, ob ich auf alle Methoden, etc zu greifen kann. In dem Code der Klassenbibliothek sind allerdings noch Fehler. In der Testapplikation habe ich die dll namens ermDiagramm eingebunden und bekomme folgende Fehlermeldung: Eine nicht behandelte Ausnahme des Typs ‚System.NullReferenceException‘ ist in testermDiagramm.exe aufgetreten. Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Hier der Code der Klassenbibliothek:

Code:
Option Explicit On

Imports System
Imports System.Drawing
Imports System.Windows.Forms 'Windwos Forms
Imports System.Runtime.InteropServices
Public Interface erm
Function Modell_erstellen(ByRef anzahl As Integer)

End Interface
_
Public Class ermDiagramm

Inherits System.Windows.Forms.Form
Public Function Modell_erstellen(ByRef anzahl As Integer) 'ByRef tName As String, ByRef tFelder As String, ByRef anzahl As Integer)
Dim Form As System.Windows.Forms.Form
Dim Model1 = New Crainiate.ERM.Model 'Erzeugen eines Models
Form.AddOwnedForm(Form)
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(800, 526)
Me.Controls.Add(Model1)
Me.Name = „Form1“
Me.Text = „Form1“
Me.ResumeLayout(False)

'…

End Function
End Class

Vielleicht schaut mal jemand über den Code und sagt mir dann was ich mit den Objektverweisen falsch gemacht habe.

Gruß, sole

Hallo zusammen!

[…]

Vielleicht schaut mal jemand über den Code und sagt mir dann
was ich mit den Objektverweisen falsch gemacht habe.

Gruß, sole

Hallo Inga!
Das Problem wird doch über simpelstes Debuggen zu finden sein, warum probierst Du es nicht einfach?
Allein vom Hinsehen scheint es aber an der Variablen Form zu liegen, die Du zwar deklariert, aber nirgends instanziiert hast.

Martin

Das Debuggen hab ich auch schon probiert. Es hat mich aber nicht weiter gebracht. Was meinst Du denn mir der variablen Form? Ich kenne mich nicht so gut damit aus und dies ist meine erste Klassenbibliothek

VG, Inga

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo nochmal!

Nichts für ungut, aber mit dieser Fragestellung scheint es mir, Du hast vom Programmieren mit compilierten Sprachen an sich recht wenig Ahnung, das Problem hat nämlich nichts mit Klassenbibliotheken oder VB.NET zu tun, sondern einfach mit dem Deklarieren und Instanziieren von Variablen.

In Deinem Code stehen u.a. diese 3 Zeilen:

Dim Form As System.Windows.Forms.Form 
Dim Model1 = New Crainiate.ERM.Model 'Erzeugen eines Models 
Form.AddOwnedForm(Form)

Damit wird eine Variable namens „Form“ vom Typ „System.Windows.Forms.Form“ deklariert (1.Zeile).
Zu diesem Zeitpunkt ist die Variable noch mit nichts belegt (null bzw. Nothing in VB/VB.NET).
Zwei Zeilen weiter unten rufst Du eine Methode (AddOwnedForm) von dieser noch nicht instanziierten Variablen auf => Crash.

Selbst wenn Du vorher Form mit New instanziierst, wirst Du ein Problem bekommen, weil Du versuchst, einem Dialog zu sagen, dass er sich selbst besitzen soll.
Überdenke am besten mal die Benennung Deiner Variablen.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Die Lösung hast Du ja schon erhalten.

Nur ein Tipp von mir:

Verwende nicht als Variablennamen Namen, die Microsoft bereits verwendet (oder mtu das so selten wie möglich). Ich empfehle hier den Variablennamen „MyForm“ anstelle von „Form“. Bei grossen Projekten kann das ganz nützlich sein.

mfg, Jay