Frage zu den Dlls



  • Hallo,

    ich bin neu hier und wollte fragen wie ich mit c# eine kleine dll erstellen kann, der nur die processe auflistet und die ich mit einem programm abrufen kann.



  • 1. Die DLL's in .NET heissen Assemblies.
    2. Um ein Assembly zu erzeugen legtst Du mit VS eine Projekt vom Typ Class Library an
    3. Die Werkzeuge um die Prozesse aufzulisten befinden sich im Namespace System.Diagnostics

    Doku zu 3.: http://msdn.microsoft.com/en-us/library/system.diagnostics.aspx

    Simon



  • Danke. Aber wie kann ich diese dll complieren und nutzen?
    Also durch Funtionen.



  • ber wie kann ich diese dll complieren und nutzen?

    Mit dem Editor schreiben, dem Compiler übersetzen und dann ins eigentliche Projekt einbinden.

    (Vllt. willst Du Deine Frage aber noch mal überdenken und neu stellen.)



  • Also so sieht das in free pascal aus:

    library TestDLL;
    
    Function TestFunction(Text:PChar):Integer; export;
    begin
     	writeln(Text);
     	result:=1;
    end;
    
    exports
       	TestFunction;
    
    begin
     	writeln('TestDLL gestartet');
    end.
    

    Und wie schreibe ich das in c#? 😞



  • 1. Du befolgst Simons Anleitung.
    2. Du liest Dir erstmal das hier durch:
    http://www.galileocomputing.de/openbook/visual_csharp/
    Wird meiner Meinung nach nötig sein. xD

    MfG
    Asmodiel



  • Eine DLL muss nur verweisen werden. Danach kannst Du die Klassen etc. verwenden als wären sie im eigenen Projekt enthalten. (Ok, Debuggen etc. verhält sich anders, aber das sieht Du dann schon.)

    Da gibts kein Import/Export mehr, keine Header oder Libs zum dazu linken. Einfach ein Verweis auf die Assembly legen (.dll oder .exe oder was es da ggf. noch geben mag) und Du kannst alles verwenden was public ist.

    Ansonsten möchte ich hier das dritte mal beipflichten: Bitte erst mal ein wenig mit der Sprache spielen und forschen, dann klappt das auch mit dem Fragen. Die Fragen, wie Du sie stellst, sind an sich Sinnlos und man müsste weit ausholen. Und das macht der Link oben an sich ganz gut 🤡



  • Knuddlbaer schrieb:

    Eine DLL muss nur verweisen werden. Danach kannst Du die Klassen etc. verwenden als wären sie im eigenen Projekt enthalten. (Ok, Debuggen etc. verhält sich anders, aber das sieht Du dann schon.)

    Es gibt noch weitere Ausnahmefälle wie z.B. Plugin-Systeme wo DLL's vorher nicht bekannt sind. Da wird der hinweis mit dem Verweis nichts bringen ;).



  • Es gibt auch noch die Varianten des P/Invokes, da bringt der Hinweis auch nix. Der Fragesteller hat so schon kein Durchblick, daher soll er erst einmal die Grundlagen lernen. Haut man ihm gleich den P/Invoke kram mit um die Ohren, blickt er garnix mehr.

    Bei einem Pluginsystem wollen wir mal nicht vergessen, das man i.d.R. ein Interface hat über das sich alles abspielt. Darauf hat man einen Verweis. In der Praxis ist mir kein Pluginsystem bekannt, das völlig unbekannte Assemblies lädt und alles mit Reflection zerpflügt und dann noch was Sinvolles damit anfangen kann. Dein Einwand trifft hier also nicht wirklich - es gibt immer eine Basis auf die sich ein Plugin Bezieht.



  • ich wollte nur eine kleine dll ertsellen mit den ich paar werte ablesen kann mehr nicht 😕



  • Deepred92 schrieb:

    ich wollte nur eine kleine dll ertsellen mit den ich paar werte ablesen kann mehr nicht 😕

    Na, dann mach das doch. Tipps wurden einige gegeben. Wenn Du nicht weiterkommst, stell vernünftige Fragen.


Anmelden zum Antworten