AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL und Create

Ein Thema von EWeiss · begonnen am 11. Feb 2007 · letzter Beitrag vom 13. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

DLL und Create

  Alt 11. Feb 2007, 23:20
ich möchte gerne eine Create function in meiner DLL integrieren weiss aber nicht ob das geht.

Beim start der Dll möchte ich in DLL_PROCESS_ATTACH:
einen aufruf einbauen der aktionen ausführt die nur einmal beim start initialisiert werden dürfen.

Hab mir das so gedacht

BassVisMain.Create(Sender); Hier schon das erste problem. Sender steht ja nicht zur verfügung

Die Classe selber sieht so aus.

Delphi-Quellcode:
TBASSVis = class(TComponent)
private

public
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;
end;

Var
BassVisMain : TBassVis;

implementation

constructor TBASSVis.Create(AOwner: TComponent);
begin

end;

destructor TBASSVis.Destroy;
begin

end;
Delphi-Quellcode:
  procedure LibraryProc(Reason: integer);
  begin
    case (Reason) of
      DLL_PROCESS_ATTACH:
      begin
      BassVisMain.Create(Sender);
Generell die frage ob sowas in DLL's überhaupt möglich ist.
Wenn ja wie regel ich das mit 'Sender'

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DLL und Create

  Alt 11. Feb 2007, 23:22
Natürlich kann Klassen in DLLs nutzen. Schwierig wird es nur, wenn man aus der DLL eine Klassenreferenz zurückgeben will. Bei deinem konkrten Problem, übergib einfach nil als Wert für den Sender.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: DLL und Create

  Alt 11. Feb 2007, 23:24
Die Sections initialization und finalization sind deine Freunde hier.
Haben auch den Vorteil, das der Code auch dann nach läuft wenn er in die Echse gelinkt wird.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

Re: DLL und Create

  Alt 11. Feb 2007, 23:24
Zitat von Luckie:
Natürlich kann Klassen in DLLs nutzen. Schwierig wird es nur, wenn man aus der DLL eine Klassenreferenz zurückgeben will. Bei deinem konkrten Problem, übergib einfach nil als Wert für den Sender.
Ja woher soll ich das wissen ob das in DLL_PROCESS_ATTACH: funktioniert
Hätte ja sein können das sich die DLL recursive aufruft.

Werde es mal mit nil versuchen.

EDIT:

Habs versucht... EAC error Anwendung kann nicht gestartet werden.
Springt auch nicht in Create rein

gruss
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

Re: DLL und Create

  Alt 11. Feb 2007, 23:28
Zitat von EWeiss:
Habs versucht... EAC error Anwendung kann nicht gestartet werden.
Springt auch nicht in Create rein
Kann auch unmöglich so gehen wie du es vorhat, da du Create auf die Referenz deines Typen anwendest, anstatt auf deinen Typen. Außerdem legst du die Instanz nirgends ab, wodurch du sie auch nicht freigeben kannst.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

Re: DLL und Create

  Alt 11. Feb 2007, 23:28
Zitat von Elvis:
Die Sections initialization und finalization sind deine Freunde hier.
Haben auch den Vorteil, das der Code auch dann nach läuft wenn er in die Echse gelinkt wird.
Habe im Thread oben unter Edit schon geschrieben das funktioniert nicht
Zumindest nicht so wie ich es mache.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: DLL und Create

  Alt 11. Feb 2007, 23:31
Was Elvis meint:
Delphi-Quellcode:
var
  fs: TFileStream;
begin
  fs := TFileStream.Create(...);
Habe ich dich in letzter Zeit zu sehr mit VB(S) verdorben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: DLL und Create

  Alt 11. Feb 2007, 23:32
Zitat von Luckie:
Was Elvis meint:
Delphi-Quellcode:
var
  fs: TFileStream;
begin
  fs := TFileStream.Create(...);
Habe ich dich in letzter Zeit zu sehr mit VB(S) verdorben?
Kannst du mir das bitte erklären ? Bin ja eigentlich VB'ler und lerne noch.
Wo und für was soll ich as einsetzen.

EDIT:
In der Form gibt es ja ein create event was beim start nur einmal ausgeführt wird
sowas will ich in die DLL einbauen.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: DLL und Create

  Alt 11. Feb 2007, 23:39
Delphi-Quellcode:
var
  fs: TFileStream; // Variable vom Typ TFileStream deklarieren. Hier wird unsere Objekt-Refrenz abgelegt
begin
  fs := TFileStream.Create(...); // Objekt erzeugen und Objektreferenz sichern
  try
    fs.MethodeXY; // eine Methode der Klasse TFileStream aufrufen
  finally
    fs.Free; // Objekt wieder zerstören
  end;
Was du wahrscheinlich gemacht hast:
Delphi-Quellcode:
var
  fs: TFileStream;
begin
  fs.Create(...);
Du hast eine Methode einer Klasse benutzt, ohne vorher die Klasse zu instanzieren / anzulegen. Es ist zwar der Konstruktor aber der Rest läuft ins Leere.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: DLL und Create

  Alt 11. Feb 2007, 23:48
Ich habe mir mal den aufruf TFileStream.Create(...); angesehen
dieser erwartet eine übergabe eines string und Mode : word

Vielleicht bin ich auch zu blöd ???
Finde den zusammenhang mit der von mir oben aufgeführten funktion nicht.
Und wie ich damit kommunizieren soll das es funktioniert.

Das ist mir noch etwas zu hoch

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz