Wie kann ich in ner Dll nen startpunkt setzen, sodass ich ne methode wie folgt aufrufen kann:
private static void TuEtwas(string nichts);
Oder wird das automatisch gemacht?
Dexter
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
Eine DLL hat einen EntryPoint
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo Programmierhans!
Eine DLL hat einen EntryPoint
Hat er einen? Ich glaub nicht, dass er einen hat, ist das nur ein Schreibfehler?
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Wofür braucht man bei ner DLL nen Startpunkt? Ist doch nur nen Stück Code den man benutzen kann...
Baka wa shinanakya naoranai.
Mein XING Profil.
Original von norman_timo
Eine DLL hat einen EntryPoint
Hat er einen? Ich glaub nicht, dass er einen hat, ist das nur ein Schreibfehler?
Was so ein kleiner mieser fehlender "k" alles ausmachen kann 🙂
Ja ist natürlich ein Schreibfehler... Ein DLL hat KKKKKKKKeinen EntryPoint
Danke für den Hinweis
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Wie kann ich in ner Dll nen startpunkt setzen, sodass ich ne methode wie folgt aufrufen kann
Kannst du vielleicht erleutern was du vor hast? Im Moment kann ich mir noch kein Anwendungsfall vorstellen.
salla
Er meint sich die guten alten Exports in Win32-DLL's! Das gibts bei .NET nicht mehr!
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Im übrigen muss die Methode natürlich public statt private sein wenn Du diese von ausserhalb aufrufen willst........
(Kollege Glasauge sieht fast alles)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Also in der Dll hab ich n paar Methoden, darunter auch welche die in ner ArrayList n eintrag hinzufügen zurückliefern, löschen usw.
Früher hab ich das einfach mit ner Instanz von der Klasse im Dll gemacht, nur leider funzt das nich mehr ganz, entweder wenn ich die Dll per DllImport oder per Refernz importiere, deshalb hab ich mir gedacht ich könnte das mit Entrypoints machen.
Dll sieht wie folgt aus:
public class Groups
{
public Groups()
{
}
public void AddGroup(string name)
{
//Zu ner ArrayList hinzufügen
}
}
Wenn ich jetzt in nem anderen Prog ne Instanz von der Datei erzeugen will geht das nich 😠
Dexter
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
Mhm beim Kompilieren kommt folgender Fehler:
Attribute "DllImport" is not valid on this declaration type. It is valid on 'method' declarations only.
Was is da der Fehler.
der Fehler kommt in der Zeile:
[DllImport("irgendwas.dll")]
Dexter
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
.NET Assemblys werden nicht importiert. Du musst Dich, glaube ich, erstmal von Win32-DLL's lösen! Das einzige was diese und .NET Assemblys gemeinsam haben, ist die Dateiendung! .NET Assemblys werden im Projekt referenziert und einfach benutzt.
using Yournamespace;
...
groups = new Groups();
groups.AddGroup("blabla");
...
Oder Du kennzeichnest die Funktion mit "static", dann so:
using Yournamespace;
...
Groups.AddGroup("blabla");
...
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Hallo Dexter!
Oder in anderen Worten ausgedrückt, wenn Du mit VS arbeitest, dann einfach auf Deine Solution im Solution-Explorer rechts klicken - > Add Reference -> Browse -> Deine Dll auswählen und alles bestätigen.
Dann wie Tomaten schon genannt, auf den namespace achten, der ist (bzw. kann) unterschiedlich zu dem namespace in der Du die Dll benutzen möchtest.
Wenn Du das gemacht hast, dann kannst Du eine Klasse ganz einfach instanziieren, als würde der code in einem .cs file liegen.
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”