Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   CreateThread Win7 (https://www.delphipraxis.net/161808-createthread-win7.html)

EWeiss 21. Jul 2011 19:16

CreateThread Win7
 
Seltsames problem

Beim erstellen eines Threads beendet meine Anwendung ohne eine Meldung auszugeben innerhalb der IDE beim debuggen.
Stelle ich den Kompatibilitätsmodus der bds.exe auf WinXp servp.3 dann funktioniert alles so wie gewohnt.

Kennt das jemand?

gruss

daywalker9 21. Jul 2011 19:24

AW: CreateThread Win7
 
Wie siehts bei MSDN-Library durchsuchenBeginThread aus?

Edit: Mal schnell was gebastelt, funktioniert bei mir auch Win7 im Debugger.

EWeiss 21. Jul 2011 19:39

AW: CreateThread Win7
 
Zitat:

Zitat von daywalker9 (Beitrag 1112919)
Wie siehts bei MSDN-Library durchsuchenBeginThread aus?

Edit: Mal schnell was gebastelt, funktioniert bei mir auch Win7 im Debugger.

Man achte auf meine Delphi Version ;)
BeginThread funktioniert nicht so wie mit CreateThread

Delphi-Quellcode:
ThreadHandle := CreateThread(nil, 0, @BassVisNewThread, pointer(ModuleNum),
                             0, DriveThreadId);
Mit eingestellten Kompatibilitätsmodus geht es ja aber dann ist mein Window = Xp wenn ich das OS gegenprüfen will.

Also sobald ich in der EXE ein Plugin oder aber nur einen Ordner mit Dateien öffnen will
wird das Debuggen beendet ohne das die IDE abstürzt oder irgendeine Meldung kommt.

Da stellt sich die Frage... Ob es überghaupt mit dem Thread zu tun hat.
Beendet ja schon wie gesagt bei der auswahl eines Ordners. bzw. beim Klick auf meinem Add-Button.
Hmmm ...

gruss

Luckie 21. Jul 2011 21:18

AW: CreateThread Win7
 
Zitat:

Zitat von EWeiss (Beitrag 1112920)
BeginThread funktioniert nicht so wie mit CreateThread

Falsch. BeginThread ruft auch nur unter anderem CreateThread. Setzt habe noch IsMultiThread auf True, um den Heap Threadsafe zu machen:
Delphi-Quellcode:
function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord;
  ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord;
  var ThreadId: LongWord): Integer;
var
  P: PThreadRec;
begin
  if Assigned(SystemThreadFuncProc) then
    P := PThreadRec(SystemThreadFuncProc(ThreadFunc, Parameter))
  else
  begin
    New(P);
    P.Func := ThreadFunc;
    P.Parameter := Parameter;
  end;
  IsMultiThread := TRUE;
  Result := CreateThread(SecurityAttributes, StackSize, @ThreadWrapper, P,
    CreationFlags, ThreadID);
end;

EWeiss 21. Jul 2011 21:52

AW: CreateThread Win7
 
Und wo ist PThreadRec Definiert so das ich das mal testen kann?

gruss

Luckie 21. Jul 2011 21:53

AW: CreateThread Win7
 
In der gleiche Unit.Wenn du die Sourcen hast, sollte das schnell zu finden sein.

EWeiss 21. Jul 2011 22:11

AW: CreateThread Win7
 
Zitat:

Zitat von Luckie (Beitrag 1112932)
In der gleiche Unit.Wenn du die Sourcen hast, sollte das schnell zu finden sein.

Sorry hab den Source nicht von dem Wrapper..

gruss

Luckie 21. Jul 2011 22:17

AW: CreateThread Win7
 
Bei der Architect Version sind keine Quellen dabei?

EWeiss 21. Jul 2011 22:26

AW: CreateThread Win7
 
Zitat:

Zitat von Luckie (Beitrag 1112941)
Bei der Architect Version sind keine Quellen dabei?

Jetzt läßt du mich aber Raten ;)
Ich habe keine Samples installiert wenn du das meinst.

Ansonsten habe ich es in der System.pas gefunden.
Aber die muss doch nicht extra eingebunden werden oder?

Wird auf jedenfall bei mir nicht erkannt.

gruss

Luckie 21. Jul 2011 22:31

AW: CreateThread Win7
 
Delphi-Quellcode:
type
  PThreadRec = ^TThreadRec;
  TThreadRec = record
    {
      WARNING: Don't change these fields without also changing them in
      the C++ RTL : winrtl/source/vcl/crtlvcl.cpp
    }
    Func: TThreadFunc;
    Parameter: Pointer;
  end;
Strg drücken und auf den Datentpy klicken. Funktioniert auch bei BeginThread.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Seite 1 von 2  1 2      

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