DLL in VB.NET erstellen

Hallo Leute,

ich versuche eine DLL in VB.NET zu schreiben um auf die Funktion mit VBA zuzugreifen.

Mein VB.NET Code:

Public Class Class1
Public Function Mal_zwei(ByVal n As Integer) As Integer
Return n * 2
End Function
End Class

Wenn ich mit VBA drauf zugreifen will, heisst es „der Einsprungpunkt“ oder so ähnlich kann nicht gefunden werden…

Ein Kollege von mir meint, dass es in VB.NET nur sehr umständlich geht, direkt auf eine DLL zuzugreifen.
Kann das wirklich sein, dass das „mächte“ VB.NET das nicht kann und z.B. Delphi schon?

MfG
Steffi

Hallo,

Also ich kann dich beruhigen: es muss irgendwie ganz einfach gehen!
Ich hab selbst vor einer Weile eine ganze Menge solche DLLs geschrieben und hatte nie Probleme. Allerdings hab ich nicht aus VBA sondern auch wieder aus VB.NET darauf zugegriffen.

Tipps kann ich dir aber nicht wirklich geben. Erstens ist es eine Ewigkeit her und zweitens sehe ich, wenn ich mir den Code von damals anschaue nix Besonderes im Vergleich zu deinem Code. Nur ich habe ein Public Module verwendet aber es müsste mit Klassen genau so gehn.

Die kein Einstiegspunkt gefunden wird kommt mir etwas seltsam vor, ich kenn mich zwar nicht direkt mit VBA aus aber normalerweise haben doch nur die ausführbaren Programme einen Einstiegspunkt und nicht die Bibliotheken.

Wenn das in deinem Beitrag eins zu eins der Code aus deiner DLL ist, würde ich sagen, dass noch der Namespace fehlt.

MfG IGnow

Hallo!
Das, was Du mit VB.NET erstellen kannst, trägt zwar auch die Endung .dll, unterscheidet sich aber doch ziemlich von dem, was VB6 ausgespuckt hat.
Mit VB.NET erstellst Du Assemblies, die verwalteten Code enthalten und die die .NET Runtime erfordern.
Die (verwalteten) Klassen darin sind für nicht verwaltete Hosts (wie z.B. VBA) nicht sichtbar und können nicht einfach so verwendet werden.

Ich würde Dir am ehesten raten, ein COM-Objekt mit VB.NET zu erstellen, das kannst Du Dir dann aus VBA heraus nutzen.

Gruß,
Martin