Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#16

Re: DLL Init, Timer läuft nicht an

  Alt 13. Apr 2010, 18:24
SetTimer geht bei mir nicht, da ich ja die WM_TIMER nicht bekomme....

Habe jetzt noch ein Problem!
Der Timer wird nun ausgelöst, aber wenn ich die Form einmal gezeigt hatte mit ShowModal dann gibt es den Error: 5 ' Zugriff verweigert' wenn ich ein FreeAndNil(frMain) mache:

Delphi-Quellcode:
procedure TmyThread.Terminate;
begin
  inherited Terminate;
  PostMessage(FHWND, WM_QUIT , 0,0);
end;

procedure TmyThread.Execute;
var msg:Tmsg;
begin

try
  //plugin gets loaded, create Form
  if Not Assigned(frMain) then
    frMain := TfrMain.Create(NIL);

  frMain.AddLog('plugin got init');

finally
//todo
end;

  FHWND:=allocatehwnd(WndProc); //hier ist jetzt dein Windowhandle für MMAudio
  try
    //[weitere Initialisierungen]
    while getMessage(msg,0,0,0) do //warten auf Message
      DispatchMessage(msg); //verteilen auf das entsprechende Fenster (gibt hier allerdings eh nur eins)
  finally
    if Assigned(frMain) then
      FreeAndNil(frMain);
   Deallocatehwnd(FHWND);
  end;
end;

procedure TmyThread.wndProc(var Msg:TMessage);
begin
  Dispatch(msg); //verteilen auf die Methoden mit der entsprechenden Message -->MMInDone
end;
Callstack:
Zitat:
:75e69617 KERNELBASE.RaiseException + 0x54
:0046a4ed RaiseLastOSError + $75
:0046a476 RaiseLastOSError + $A
:004ec618 TCustomForm.DestroyWindowHandle + $38
:00454fc3 TObject.Free + $B
:00454fc3 TObject.Free + $B
:0048fb85 ThreadProc + $45
:0045626e ThreadWrapper + $2A
:772a1174 kernel32.BaseThreadInitThunk + 0x12
:77bcb3f5 ntdll.RtlInitializeExceptionChain + 0x63
:77bcb3c8 ntdll.RtlInitializeExceptionChain + 0x36
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat