Autor Beitrag
error
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: Fr 01.08.08 11:22 
Ich versuche gerade, in mein Programm eine Unterstützung für DLLs einzubauen. Mit Hilfe einiger Tutorials hab ich die Grundlagen schonmal hinbekommen, aber es gibt noch ein paar Sachen, die mir nicht so klar sind:

1) Wie gebe ich Strings zurück? Ich bin davon ausgegangen, dass ich einen PChar als var-Parameter übergebe und dann dareinschreibe, aber ganz so einfach scheint es leider nicht so sein.
2) Kann ich auch z.B. die Indy-Library in DLLs benutzen?
3) Kann ich in DLLs globale Variablen haben, auf die ich dann in verschiedenen Methoden der DLL zugreife?

Wäre schön, wenn mir das jemand sagen könnte!
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Fr 01.08.08 12:00 
1) Hier findest du einen guten Artikel zu dem Thema von user profile iconLuckie.

2) Indy-Library kenn ich nicht, bzw. hab ich noch nicht benutzt.

3) Ja, aber da DLLs von mehreren Programmen gleichzeitig benutzt werden können, ist hier auf Threadsicherheit zu achten.
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Fr 01.08.08 12:13 
user profile iconiKilledKenny hat folgendes geschrieben:
1)3) Ja, aber da DLLs von mehreren Programmen gleichzeitig benutzt werden können, ist hier auf Threadsicherheit zu achten.

AFAIK hat jedes Programm hat seinen eigenen Daten-Adressraum so das sich mehrer Programme hier nicht in die Quere kommen können. Ich glaube bei 16-Bit Windows mußte man hier aufpassen.
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Fr 01.08.08 13:39 
user profile iconBernhard Geyer hat folgendes geschrieben:
AFAIK hat jedes Programm hat seinen eigenen Daten-Adressraum so das sich mehrer Programme hier nicht in die Quere kommen können. Ich glaube bei 16-Bit Windows mußte man hier aufpassen.


Das ist richtig. Ich habe mich an dieser Stelle nicht deutlich ausgedrückt. Ich meine natürlich das benutzen von mehreren Stellen aus einem Programm heraus. Ich bin mit einer Painter-DLL mal darauf hereingefallen.
error Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: Sa 02.08.08 14:27 
Wunderbar, danke für eure Hilfe! Nachdem ich rausgefunden hatte, dass ich das stdcall bei der Definition der Funktionen vergessen hatte, lief es dann auch. :)