AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

CreateThread Win7

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

n/a Beiträge
 
#1

CreateThread Win7

  Alt 21. Jul 2011, 19: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, 19: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 19:27 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: CreateThread Win7

  Alt 21. Jul 2011, 19: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 19:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 21: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, 21:52
Und wo ist PThreadRec Definiert so das ich das mal testen kann?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 21: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, 22: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
(Moderator)

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

AW: CreateThread Win7

  Alt 21. Jul 2011, 22: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, 22: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 22:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

AW: CreateThread Win7

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

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf