Français
Forum

péril schlimmer Crashes GT. ProcAddr chez Callbacks, Threads

 
- page 1 -


allô IF...

je habs la fois getestet et hoffe rien faux gemacht trop avons:
KompilierenMarqueSéparation
 $U thread.pcu = thread.
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
Testprogramm Timer
Profan Version 9
 $H Windows.ph
-Main----------------------------------------------------------------
Declare Timer_Busy%,Ende%
Declare TimerID&,Create%,T_Text&,Test#
WindowStyle 26
WindowTitle "Timertest PHU-60"
Window 100,100 - 370,200
cls
Let T_TEXT&=@CREATETEXT(%HWND,"",30,30,300,30)
-Menue---------------------------------------------------------------
PopUp "&Programm"
AppendMenu 108,"&Einstellungen"
AppendMenu 109,"&Ende"
Ende% = 0
Timer setzen (4x pro Sekunde, 250ms)
thread.start 1,1

WhileNot Ende%

    WaitInput

    If @MenuItem(108)

        Einstellungen

    Endif

    If @MenuItem(109)

        thread.stopall
        Ende% = 1

    Endif

Wend

End
-Proc Einstellungen

Proc Einstellungen

    Declare hD%, hA%, hB%, OK%, hTime%
    Declare hF1%, hT1%
    Clear OK%
    Dialogfenster erzeugen
    hD% = @Create("Dialog",%hWnd,"Einstellungen",%WinLeft+80,%WinTop+155,230,190)
    hF1% = @Create("Font","Arial",16,0,0,0,0)
    hT1% = @Create("Text",hD%,"Einstellungen...",10,10,220,20)
    SetFont hT1%,hF1%
    hTime% = @Create("TimeEdit", hD%, "00:00:00", 10, 35, 70, 24)
    hB% = @Create("Button",hD%,"&Nachstellen",10,120,100,28)
    hA% = @Create("Button",hD%,"&Abbrechen",120,120,100,28)

    WhileNot Ok%

        WaitInput

        If @ButtonClicked(hB%)  Nachstellen

            Ok% = 1
            Aktionen hier

        ElseIf @ButtonClicked(hA%) Abbrechen

            Ok% = 1

        ElseIf (%Key = 2) ALT+F4 bzw. schließen

            Ok% = 1

        EndIf

    EndWhile

    DeleteObject hF1%
    @DestroyWindow(hD%)

EndProc

-Prozedur die in bestimmten Zeitintervallen ausgefuehrt wird (4x pro Sekunde)

Proc thread.do

    parameters n&
    Dim Test#,1000000
    Inc Timer_Busy%
    Locate 5,5
    Print "Timer:" + @str$(Timer_Busy%) + " Durchläufe"
    Settext T_Text&,"Timer:" + @str$(Timer_Busy%) + " Durchläufe"
    ENDPROC


aussi ici wird cela la fenêtre pas richtig angezeigt!
quoi bedeutet cela? Werden im Hauptprogramm au cours de un fil fonctionnement, überschreibt Profan interne gespeicherte Variablen zum Aufrufen de API. Je après que, quelle Profanfunktionen im Hauptprogramm verwendet volonté, ist qui péril la fois plus et la fois moins gegeben, vous ist mais aussi (le son Roland) beim direkten Aufrufen de APIs vorhanden. quand et si un faute auftritt, hängt vom gewählten Zeitintervall, vom calculateur et de qui Programmbedienung par den User ab.
quoi bedeutet cela oui c'est ca?

un Beispiel:
Beim einem calculateur sous Windows2000 wird beim Aufruf qui API RegUnloadKey un solcher Crash verursacht et qui API wird c'est pourquoi pas korrekt fonctionnement. Daraufhin wird qui Registryhive des User pas comment geplant entladen et ist beim prochain Start pas plus disponible => un ganzes Userprofile ist unwiederbringlich verloren.

un anders Beispiel:
cela Hauptprogramm écrit au cours de un Callback fonctionne dans qui Registry. là alles ungünstig zusammentrifft, wird dans une anderen Schlüssel geschrieben et Datenj dans qui Registry aller verloren!

Weitere Fragen et Anmerkungen?
 
09.09.2006  
 



 
- page 2 -


allô IF...

Mir également - avant diesem schönen Voir le texte source konnte je malheureusement den Grund pas trouver. peux du dir maintenant présenter, pourquoi je absolument savons voulais, si du Minuteur dans qui PCU verwendest?
Einen Fil serait je seulement stoppen, si il pas plus gebraucht wird => peux fatal volonté!

Salut

AH
 
09.09.2006  
 



non peux je pas wirklich zumal qui Minuteur hierbei Nebensache ist si es réellement alle Dinge betrifft quelle avec procaddr  zutun avons. voilà Minuteur wohl plutôt dans qui Minderheit si je bedenke comment souvent une wProc angecallt wird...

je veux dire, selbst si je maintenant dans qui DLL - la fois angenommen - selber qui Zeit le calcul serait et statt sur une Minuteur un Call sur qui ProcAddr fais - ensuite wäre es ebenso grave! cela Problem selbst hat alors pas vordergründig avec den Timern trop 1faire.

une Save-variante wäre es naturellement simple une Message à hwnd trop senden si un Event passer soll. cela wiederum serait mais malheureusement qui Struktur changement.
 
09.09.2006  
 



aussi à toi: Lese dir oui c'est ca par, quoi j'écris. cela Problem hat meiner attitude pour rien avec anderen Callbacks trop 1faire!
 
09.09.2006  
 



je lese qui Postings aller Mitglieder justeoui c'est ca par.

Mir fehlt mais pour Votre dernier Behauptung une Begründung...
 
09.09.2006  
 



WM_TIMER wird chez Angabe einer Adresse pas absolument de qui WndProc bearbeitet, c'est qui Unterschied.
 
09.09.2006  
 



qui Shatter Attack utilise cela - je cherche juste la fois den Artikel...
 
09.09.2006  
 



[quote-part:bf2faa3b30]WM_TIMER wird chez Angabe einer Adresse pas absolument de qui WndProc bearbeitet, c'est qui Unterschied.[/quote-part:bf2faa3b30]
Hm sei Je ne böse mais je trouve cela irreführend.

je veux dire, selbst si je maintenant dans qui DLL - la fois angenommen - selber qui Zeit le calcul serait et statt sur une Minuteur un Call sur qui ProcAddr fais - ensuite wäre es ebenso grave! cela Problem selbst hat alors pas vordergründig avec den Timern trop 1faire et pas avec cela - si wm_timer de qui wndproc erfasst wird - zumal unklar ist inwiefern Rolands wndProc ensuite wiederum weiterhandelt...

mais je crois ici peux uns seulement Roland aider...
 
09.09.2006  
 



EasyVent.Dll - selbe Problem... insgesammt mais sicherlich pas unschlecht cela cela Thema angesprochen ist - es brennt aussi mir déjà longtemps sur qui Seele - saisir wirs alors chez den Haxen et attendre Rolands Statement ab...
 
09.09.2006  
 



[quote-part:ae4c1936c9=iF][quote-part:ae4c1936c9]WM_TIMER wird chez Angabe einer Adresse pas absolument de qui WndProc bearbeitet, c'est qui Unterschied.[/quote-part:ae4c1936c9]
Hm sei Je ne böse mais je trouve cela irreführend.

je veux dire, selbst si je maintenant dans qui DLL - la fois angenommen - selber qui Zeit le calcul serait et statt sur une Minuteur un Call sur qui ProcAddr fais - ensuite wäre es ebenso grave! [/quote-part:ae4c1936c9]
Scon ausprobiert? je veux espérer, wir reden pas aneinander vorbei...

[quote-part:ae4c1936c9]
Si you pass a non-zéro HWND after le specified interval has passed, a WM_TIMER message is posted to le window and le TIMERPROC paramètre is ignored. The other option is passing a zéro HWND and a valid TIMERPROC address. dans this cas, after le specified time has elapsed, le HWND is ignored and le system calls your TIMERPROC function.
[/quote-part:ae4c1936c9]
 
09.09.2006  
 



peux déjà son cela wir aneinander vorbeireden...

peut-être voyons wir qui Problematik aussi à verschiedenen se mettre...

Spielt oui aucun rôle - grundsätzlich ca va tout autor quoi passiert si une XProfanprozedur pas vom XProfan selbst - mais de außen angerannt wird... - qui Diener hierzu ist procaddr . qui Aufdröselung comment Roland cela realisiert hat peux seulement il uns donner - jusqu'à dato könnten alle Spekulationen im Nachhinein nichtig son.
 
09.09.2006  
 



FALSCH!!!!!!

pas tout autor de wohin vous angerannt volonté, mais comment et wohin vous stehen!
Stehen Callbacks außerhalb de Profan, gibt es aucun Probleme. aussi chez Callbacks dedans de Profan pourrait es wohl seulement chez WM_TIMER grand Probleme donner (suis mir là mais pas entier sûrement).
 
09.09.2006  
 



LOL, FALSCH!!! et (suis mir là mais pas entier sûrement). à dem Postings ist rien faux vertrau mir.

eh bien étiez doch la fois Rolands Antwort ab.
 
09.09.2006  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.259 Views

Untitledvor 0 min.
H.Brill26.01.2023
Peter Max Müller13.11.2017
iF19.07.2015
Ernst02.03.2015

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie