Kann man dll's mit C# erstellen?



  • Moin,

    der Titel sagt fast alles....

    Wollte mir Visual Studio und C# eine dll programmieren.

    Ist das möglich? Hab bis jetzt nur von C++ und VB gelesen.

    Wenn das möglich ist, was für einen Projekttyp muss man im Visual Studio auswählen?

    Wird beim Erstellen des Projekts anstatt ner Exe ne Dll Datei erstellt?

    Flens



  • ja es ist möglich!

    was für einen Projekttyp muss man im Visual Studio auswählen?

    ClassLibrary
    alternativ kannst du die dsw bzw. dsp datei mit einem Texteditor öffnen und stellst fest, das es sich dabei um eine xml datei handelt - dort kannst du dann manuell einstellen, dass es sich um eine dll handelt, falls das nicht in deinen Settings angezeigt wird



  • ok,

    nun möchte ich aber eine Datenbankverbindung über SQLConnection herstellen.

    Hab eine ClassLibrary. Kann ich dort ne SQLConnection aufbauen?

    Wie müsste ich das in den Code einbinden?



  • Flens schrieb:

    ok,

    nun möchte ich aber eine Datenbankverbindung über SQLConnection herstellen.

    Hab eine ClassLibrary. Kann ich dort ne SQLConnection aufbauen?

    Wie müsste ich das in den Code einbinden?

    mach also nen Classlibrary - Projekt und implementier dort den Datenbankquatsch
    dann Kompiliere das Classlibrary - Projekt im Debug/Bin steht deine DLL

    Jetzt mach nen anderes Projekt off und füge diesem Projekt nen Verweis auf obige
    DLL inderer sich der Datenbankquatsch mit Soße befindet!

    mfg



  • ok, wenn ich nun eine dll hab, wie binde ich die richtig ein.

    hab das dllimport zu gefunden, aber mit den Parametern komme ich nicht zurecht.

    wie muss man das bei der dll machen?

    Hab bis jetzt im Netz nix vernünftiges zu dll Programmierung mit C# gefunden.
    Vielleicht hat jemand einen Tipp für mich!?



  • Bei .NET is nix mit dllimport.
    Referenziere einfach die benötigte Dll und du kannst alle Klassen (wenn sie public sind) nutzen.
    That's it.





  • so weit so gut. Bin nun schon ein Schritt weitergekommen. Das mit der DLL bzw. mit dem Zugriff auf die Methoden geht jetzt.

    Nun muss ich nur noch den Datenbankzugriff realisieren.

    mach also nen Classlibrary - Projekt und implementier dort den Datenbankquatsch

    Hab da noch Probleme mit dem "Datenbankquatsch"...

    In einer "normalen" Windowsanwendung habe einen Datenbankzugriff über SqlConnection und SqlCommand realisiert. Dazu habe ich die beiden Komponenten in mein Form reigezogen und parametriert. Das läuft auch.

    Nun soll der "Quatsch" aber auch in der DLL laufen. Da kann ich aber die Komponenten nicht einfach reinziehen und parametrieren.

    Reicht auch nicht, wenn ich in der DLL folgendes einfüge:

    private System.Data.SqlClient.SqlConnection sqlConnection1;
    private System.Data.SqlClient.SqlCommand sqlCommand1;
    

    Wie baue ich dann über diese Komponenten ne DB Verbindung auf???



  • Hab was zur dll Erstellung mit C# gefunden. Fals es jemanden interessiert, hier ist der Link:
    [url]
    http://www.c-sharpcorner.com/2/pr12.asp
    [/url]

    Hab da aber jetzt ein weiters Problem mit der DB Verbindung in der dll.
    Bastel mir ein Insert String zusammen. Sieht so aus:

    INSERT INTO MESDB_LOG VALUES (54, 52, 62, 41, 72)

    Das Ding funzt auch, wenn ich es so auf die DB "anwende".
    Aber sobald ich das aus der DLL aufrufe, geht nix mehr.

    Erstmal übergebe ich den String an

    sqlCommand1.CommandText
    

    dann versuche ich den auszuführen:

    sqlConnection1.Open();
    sqlCommand1.ExecuteNonQuery();
    

    nur das ExecuteNonQuery() geht irgendwie nicht in der dll.

    Muss man da noch was besonderes beachten? Aus einer normalen Windows Anwendung heraus funzt der Code.


Anmelden zum Antworten