AGB  ·  Datenschutz  ·  Impressum  







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

CreateThread Win7

Ein Thema von EWeiss · begonnen am 21. Jul 2011 · letzter Beitrag vom 22. Jul 2011
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

CreateThread Win7

  Alt 21. Jul 2011, 20:16
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
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: CreateThread Win7

  Alt 21. Jul 2011, 20:24
Wie siehts bei MSDN-Library durchsuchenBeginThread aus?

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

Geändert von daywalker9 (21. Jul 2011 um 20:27 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: CreateThread Win7

  Alt 21. Jul 2011, 20:39
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

Geändert von EWeiss (21. Jul 2011 um 20:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 22:18
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: CreateThread Win7

  Alt 21. Jul 2011, 22:52
Und wo ist PThreadRec Definiert so das ich das mal testen kann?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 22:53
In der gleiche Unit.Wenn du die Sourcen hast, sollte das schnell zu finden sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: CreateThread Win7

  Alt 21. Jul 2011, 23:11
In der gleiche Unit.Wenn du die Sourcen hast, sollte das schnell zu finden sein.
Sorry hab den Source nicht von dem Wrapper..

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 23:17
Bei der Architect Version sind keine Quellen dabei?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: CreateThread Win7

  Alt 21. Jul 2011, 23:26
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

Geändert von EWeiss (21. Jul 2011 um 23:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 23:31
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 13:09 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