DLL mit einer Form

17/02/2010 - 17:00 von Fred Aurich | Report spam
Hallo,

ich wollte eine DLL erstellen, um sie als Komponente in einer anderen
Programmiersprache zu benutzen.

In der grossen www-Welt sind ja viele Anleitungen dazu enthalten, aber alle
verwenden keine "Grafischen"-Objekte (Forms, Container etc.) als Grundlage
(Basisklasse).

Gibt es eine (einfache) Möglichkeit, eine fertige Windows-Anwendung als DLL
zu kompilieren? Public-Methoden und Variablen muss ich natürlich noch
bereitstellen, aber geht es auch ohne Schnittstelle einfach nur eine
Anwendung als DLL?

Mir würde es auch schon helfen, wenn mir jemand "zeigen" könnte, wie man ein
Leeres Form als DLL erhàlt. Sàmtliche InitializeComponent() Anweisungen habe
ich schon "übertragen" aber trotzdem will es nicht.

Danke Fred.
 

Lesen sie die antworten

#1 Konrad Neitzel
17/02/2010 - 20:16 | Warnen spam
Hallo Fred!

"Fred Aurich" wrote in message
news:

In der grossen www-Welt sind ja viele Anleitungen dazu enthalten, aber
alle
verwenden keine "Grafischen"-Objekte (Forms, Container etc.) als
Grundlage
(Basisklasse).



Grafische Objekte sind auch einfache Objekte wie jedes andere auch. Von
daher sollten die Anleitungen 1:1 verwendbar sein.

Gibt es eine (einfache) Möglichkeit, eine fertige Windows-Anwendung
als DLL
zu kompilieren? Public-Methoden und Variablen muss ich natürlich noch
bereitstellen, aber geht es auch ohne Schnittstelle einfach nur eine
Anwendung als DLL?



Eine Anwendung wird als EXE und nicht als DLL kompiliert. Aber
prinzipiell ist dies kein großes Thema, denn es ist eine Assembly, die
Du laden kannst. Statt eine EXE zu starten kannst Du auch so darauf
zugreifen.

Mir würde es auch schon helfen, wenn mir jemand "zeigen" könnte, wie
man ein
Leeres Form als DLL erhàlt. Sàmtliche InitializeComponent()
Anweisungen habe
ich schon "übertragen" aber trotzdem will es nicht.



Der Weg ist immer gleich:
1) Projekt anlegen (Also in diesem Fall als DLL eine Windows - Forms
Library.
2) Dann im Solution Explorer rechtsklick auf das Projekt und Add -> New
Item ...
3) Dann z.B. Auswàhlen: Windows Forms - Windows Form (1:1 wie bei eine
EXE!)

Nun kannst Du diese DLL einfach als Reference einbinden (Also entweder
direkt Abhàngigkeit zu dem Projekt oder Referenz zu der DLL. Das wàre
die einfachste Methode, denn dann hast Du auf alles vollen Zugriff.)

Wenn Du aber keine direkte Referenz haben willst, dann einfach folgenden
Weg gehen:
1) Assembly laden: Assembly.Load oder Assembly.LoadFrom wàren hier z.B.
brauchbar.
2) Typen herausfinden. (z.B. alle Klassen, die von einer bestimmten
Basisklasse ableiten)
Hier wàre z.B. Assembly.GetTypes() brauchbar um eine Liste aller Types
der Assembly zu bekommen und für jeden Typ kann man dann mit
IsSubclassOf(...) prüfen, ob es z.B. vom gewünschten Typ ist.

Hier kann man dann alles nutzen, was Reflection einem so bietet.
Unter dem Stichwort gibt es dann deutlich mehr Infos, wenn Du etwas in
MSDN oder Google suchen möchtest.
http://msdn.microsoft.com/de-de/lib...4wk15.aspx

Ich hoffe, ich konnte Dir etwas weiter helfen.

Mit den besten Grüßen,

Konrad

Ähnliche fragen