AGB  ·  Datenschutz  ·  Impressum  







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

[Problem] DLL + Threads

Ein Thema von 1Molotow1 · begonnen am 16. Mai 2012 · letzter Beitrag vom 16. Mai 2012
 
1Molotow1

Registriert seit: 16. Mai 2012
6 Beiträge
 
#1

[Problem] DLL + Threads

  Alt 16. Mai 2012, 11:34
Hallo, erst mal sorry falls das hier nicht die richtige Sektion ist. Ich habe keine passende gefunden...

Also:
Ich möchte in einer DLL einen Thread(oder mehrere) starten, mit einer Endlosschleife. (while)
Die EXE die die DLL ladet, hat ebenfalls eine Endlosschleife, die nach dem Start der Threads einfach "stehen bleibt". Das soll sie aber nicht!

EXE Code:
Code:
program bin;

uses
  SysUtils, Windows;

type
  TRealFunction = function(sParam: PChar): PChar; stdcall;

function LoadDLL(DllName: PChar; Einstieg: PChar; sParam: PChar): string;
var
  RealFunction: TRealFunction;
  Handle: THandle;
begin
  Handle := LoadLibrary(DllName);
  if Handle <> 0 then begin
    @RealFunction := GetProcAddress(Handle, Einstieg);
    if @RealFunction <> nil then begin
      result := PChar(RealFunction(sParam));
    end;
    FreeLibrary(Handle);
  end;
end;

Var
  sString: String;
begin

// sString wird eig. ausgelesen
sString := 'lal';

  while True do
  begin
    sleep(5000);

    if sString = 'lal' then
      LoadDLL(PAnsiChar(GetCurrentDir + '\test.dll'),'StartPlugin',PAnsiChar('übergabe-string'));

    // hier immer wieder ein command wiederholen
    // allerdings passiert nichts mehr, nachdem die dll geladen wird
  end;

end.
DLL Code:
Code:
library test;

uses
  SysUtils,
  Windows,
  Dialogs;

{$R *.res}

function tThread(p: Pointer): Integer;
begin

while True do
begin
  MessageBox(0, 'Endlosschleife soll bleiben...', '', 0);
end;

end;

function StartPlugin(sParam: PChar): PChar; stdcall;
Var
  Id:DWORD;
begin
  waitforsingleobject(BeginThread(nil,0,@tThread,nil,0,id),infinite);
end;

exports
  StartPlugin;

Begin
  IsMultiThread := True;

end.
Hat jemand eine Idee wie ich es hinbekomme, dass beide Endlosschleifen weiter laufen?


Danke im Vorraus!
  Mit Zitat antworten Zitat
 


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 20:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz