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 3 -


et cet trois Source wären là sous anderem aussi encore intéressant:
KompilierenMarqueSéparation
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
DEF @GetProcAddress(2) !"KERNEL32","GetProcAddress"
Testprogramm Timer
Profan Version 9
 $H Windows.ph
-Main----------------------------------------------------------------
Declare Timer_Busy%,Ende%
Declare TimerID&,Create%,T_Text&,Test#,T_TEXT2&
Declare OldWndProc&,DLL&,P_A&
LET DLL&=@Usedll("Send.DLL")
WindowStyle 26+512
WindowTitle "Subclassingtest"
Window 100,100 - 370,200
Let T_TEXT&=@CREATEButton(%HWND,"",30,80,300,30)
Let T_TEXT2&=@CREATEButton(%HWND,"Ende",30,120,300,30)
Waitinput
Set("FastMode", 1)
OldWndProc& = ~GetWindowLong(%hWnd,~GWL_WNDPROC)
LET P_A&=@GetProcAddress(DLL&,"_timer@16")
~SetWindowLong(%hWnd,~GWL_WNDPROC,@ProcAddr("Sub",4))
Ende%=0
TimerID&=~SetTimer(%HWND,333,20,P_A&)
Print TimerID&

WhileNot Ende%

    WaitInput

    If @Buttonclicked(T_TEXT&)

        Einstellungen

    Endif

    If @Buttonclicked(T_TEXT2&)

        ~KillTimer(%HWND,333)
        Ende%=1
        Freedll DLL&

    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)
    hD% = @Control("Dialog","Einstellungen",$14C80084,%WinLeft+80,%WinTop+155,230,190,%HWND,0,%HINSTANCE,$101)
    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

Proc Sub

    Parameters hWnd&,Message&,wParam&,lParam&

    If Message&=$401

        Inc Timer_Busy%
        Settext T_Text&,"Timer: " + @str$(Timer_Busy%) + " Durchläufe"
        Return ~CallWindowProc(OldWndProc&,hWnd&,Message&,wParam&,lParam&)

    Else

        Return ~CallWindowProc(OldWndProc&,hWnd&,Message&,wParam&,lParam&)

    EndIf

ENDPROC


KompilierenMarqueSéparation
DEF @GetDlgCtrlID(1) !"User32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
DEF @GetProcAddress(2) !"KERNEL32","GetProcAddress"
Testprogramm Minuteur
Profan Version 9
 $H Windows.ph
-Main----------------------------------------------------------------
Déclarer Timer_Busy%,Ende%
Déclarer TimerID&,Créer%,T_Text&,Test#,T_TEXT2&
Déclarer OldWndProc&,DLL&,P_A&
LET DLL&=@Usedll("Send.DLL")
Fenêtre Style 26+512
Titre de la fenêtre "Subclassingtest 2"
Fenêtre 100,100 - 370,200
Laisser T_TEXT&=@CREATEButton(%HWND,»,30,80,300,30)
Laisser T_TEXT2&=@CREATEButton(%HWND,"Ende",30,120,300,30)
Waitinput
Set("Fastmode", 1)
OldWndProc& = ~GetWindowLong(%hWnd,~GWL_WNDPROC)
LET P_A&=@GetProcAddress(DLL&,"_timer@16")
~SetWindowLong(%hWnd,~GWL_WNDPROC,@ProcAddr("Sub",4))
Ende%=0
TimerID&=~SetTimer(%HWND,333,25,@ProcAddr("Sub",4))
Imprimer TimerID&

WhileNot Ende%

    WaitInput

    Si @Buttonclicked(T_TEXT&)

        Einstellungen

    Endif

    Si @Buttonclicked(T_TEXT2&)

        ~KillTimer(%HWND,333)
        Ende%=1
        Freedll DLL&

    Endif

Wend

Fin
-Proc Einstellungen

Proc Einstellungen

    Déclarer hD%, hA%, hB%, OK%, hTime%
    Déclarer hF1%, hT1%
    Claire OK%
    Dialogfenster erzeugen
    hD% = @Créer("Dialog",%hWnd,"Einstellungen",%WinLeft+80,%WinTop+155,230,190)
    hD% = @Contrôle("Dialog","Einstellungen",$14C80084,%WinLeft+80,%WinTop+155,230,190,%HWND,0,%HINSTANCE,$101)
    hF1% = @Créer("Font",Arial,16,0,0,0,0)
    hT1% = @Créer("Text",hD%,"Einstellungen...",10,10,220,20)
    SetFont hT1%,hF1%
    hTime% = @Créer("TimeEdit", hD%, "00:00:00", 10, 35, 70, 24)
    hB% = @Créer("Button",hD%,"&Nachstellen",10,120,100,28)
    hA% = @Créer("Button",hD%,"&Abbrechen",120,120,100,28)

    WhileNot Ok%

        WaitInput

        Si @ButtonClicked(hB%)  Nachstellen

            Ok% = 1
            Aktionen ici

        ElseIf @ButtonClicked(hA%) démolir

            Ok% = 1

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

            Ok% = 1

        EndIf

    Endwhile

    DeleteObject hF1%
    @DestroyWindow(hD%)

ENDPROC

Proc Sous

    Paramètres hWnd&,Message&,wParam&,lParam&
    Inc Timer_Busy%
    Settext T_Text&,"Timer: " + @str$(Timer_Busy%) + " Durchläufe"

ENDPROC


KompilierenMarqueSéparation
 $DLL
-Procédure qui dans certain Zeitintervallen ausgefuehrt wird (4x pro seconde)
Déclarer Timer_Busy%,WND&

dllproc Minuteur,4

    Paramètres P1&,P2&,P3&,P4&
    @SendMessage(@FindWindow("Subclassingtest"),$401,0,0)

ENDPROC


qui faute hat alors wohl rien avec Subclassing trop 1faire - ou bien quoi meinst du oui c'est ca?
 
10.09.2006  
 



 
- page 4 -


[quote-part:19dfeaab2b=Frank Abbing][quote-part:19dfeaab2b]Comme je le disais: s'il te plaît Testen! intéressé mich brennend. Bau fois le Callback dans un DLL - dauert oui pas longtemps...[/quote-part:19dfeaab2b]
je hatte cela déjà gemacht. mon Dll hat une Fil erzeugt et cette hat une profansche Callbackroutine aufgerufen. Pour mehreren Aufrufen brach Profan avec den sonderlichsten Fehlermeldungen ab. Je kürzer qui Spanne qui Aufrufe, desto plus rapide kamen qui faute.[/quote-part:19dfeaab2b]
allô Frank...

enfin versteht la fois einer, quoi je sage .
Hab deinen Beitrag malheureusement seulement maintenant gelesen.
cet Problem c'est moi également bekannt - cela liegt mais entier woanders et läßt sich droite simple tourner autour de (siehe Rolf).
 
10.09.2006  
 



So Andreas,

qui pas écouter peux doit sentir.

Im Grunde aller unsere Meinungen oui dahingehend auseinander le moi sage, cela es grundsätzlich à procaddr  liegt, weil ca qui Schnittstelle ist en supplément cela de aussen Prozeduraufrufe injiziert volonté peut et Du meinst cela es speziell avec WM_Timer trop 1faire hat.

alors habe je cela ganze sans Wm_timer gelöst, un Call wird de einer DLL direct aufgerufen, toujours et toujours wieder.

Es belegt cela es vokommen peux, cela si une proc qui per procaddr disponible gemacht wurde, extern aufgerufen wird, XProfan sich verhäddert. sans ProcAddr wäre ca oui pas possible.

ici qui Code zum Selbertesten, unten ne versaute Dll.

Es hat demzufolge rien avec qui Fil-Unit trop 1faire et rien avec wm_timer, weshalb Je l' Fil aussi aus dem Fil-Unit-Bereich entfernt, et pour Programmation geschoben habe.
KompilierenMarqueSéparation
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
declare h&
h&:=usedll("thread2.dll")
h&:=external("kernel32","GetProcAddress",h&,"dodo")
external("thread2.dll","f",procaddr("thread.do",0),h&)

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


6 kB
Hochgeladen:12.09.2006
Downloadcounter45
Download
 
12.09.2006  
 



allô IF...

Im habe Je l' impression, wir reden im Prinzip de qui selben l'affaire , penser mais beide pas zuende . la hâte du dir déjà la fois überlegt, pourquoi qui faute beim Verwenden de Set(FastMode, 1) pas plus auftritt ?
si cela wirklich chez chaque Callback sur une Profanfunktion vorkommt (cela glaube je dir, aussi sans den Voir le texte source qui DLL trop voyons), devrait on absolument oui c'est ca savons, chez welchen Profanfunktionen là péril besteht. j'ai ici Stundenlang avec Writeini et Readini$ herumexperimentiert, sans (zum Glück) une faute trop erzeugen. si cela wirklich sogar (le son Roland) beim direkten Aufrufen de APIs passer pourrait, gibt es eigentlich gar aucun Possibilité, cela Messagehandling beizubehalten et autre chose gleichzeitig ablaufen trop laisser.

cela es à qui Häufigkeit des Aufrufens qui Procédure liegt, peux je pas bestätigen. Je moins qui Procédure aufgerufen wird, umso geringer ist qui probabilité, cela un faute passiert - qui faute passer mais doch.
dans TNT wird également un Callback verwendet - cela Programme verwende je laufend, um irgendetwas dans Windows trop untersuche.
Am Anfang traten, égal comment souvent qui Callback aufgerufen wurde, toujours irgendwelche faute sur. depuis je là quelques Profanfunktionen à une autre Stelle déménagé habe (wohin vous aucun Probleme plus faire), ist Ruhe.
 
13.09.2006  
 



[quote-part:3974012546]la hâte du dir déjà la fois überlegt, pourquoi qui faute beim Verwenden de Set(FastMode, 1) pas plus auftritt ? [/quote-part:3974012546]
c'est Unsinn Andreas, es hat aussi rien avec dem Fastmode trop 1faire.

Es liegt simple à qui Umsetzung de procaddr - j'ai mir mon Betrachtungsweise bestätigen laisser.

Im FastMode treten naturellement selbige Probleme sur!
 
13.09.2006  
 



Nachtrag: péril besteht grundsätzlich chez allen ProfanFunktionen, qui péril augmenté sich - je dis donc plump - aus desto plus Aufrufen qui Funktion interne besteht.

cet Dinge de denen Du berichtest - dire wir il y a près de/Folgeerscheinungen.
 
13.09.2006  
 



allô IF...

seulement la fois besten Dank pour deine Bemühungen.
Sollte cela so stimmen (et cela est maintenant pas, le moi dir cela pas glaube),
ist cela vraie une Hiobsbotschaft - im Klartext bedeutet cela oui u.a. folgendes:
- c'est dans aucun Weise possible seulement avec Profan irgendetwas (gleichzeitig) correct ablaufen trop laisser.
- c'est pas possible, avec Profan une vernünftigen Service trop écrivons.
- une vielzahl à APIs peux on avec Profan pas verwenden (SendMessageCallback, alle Minuteur avec Callbacks, EnumThreadWindows, EnumWindows....)

Eignet sich Profan überhaupt ensuite zum Programmieren?
la fois angenommen, doit dans certain Zeitabständen quelque chose sur une Callback dokumentieren et mon Programme fummelt gleichzeitig avec RegLoadKey / RegUnloadKey dans qui Registry rum (so comment RegEdt32 cela tut), qui venez ensuite pour den dommage à fremden Rechnern ou bien Systemen sur? Sollte on avec Profan programmierte Programme ensuite überhaupt dans Umlauf apporter? cela doit sich schnellstens changement!
 
13.09.2006  
 



bof! qui Ausnahme - dans qui es keinerlei Probleme gibt - sommes arrêt Funktionen quelle une ProcAddr besoin mais sich seulement finissons si le travail geschehen ist! Roland hat ProcAddr eigendlich aussi seulement so gedacht!

ici z.B. cet Beispiel: [...] 

alors Probs gibts pas, si le Funktion qui Proc derrière qui ProcAddr aufruft, ca aussi seulement tut solange vous selbst encore fonctionne.

quoi qui Gleichzeitigkeit avec cela betrifft bedeutet ca pour alle anderen Fälle cela qui Funktion ProcAddr ungeeignet ist. malheureusement!
 
13.09.2006  
 



[quote-part:0f571140cc=iF]bof! qui Ausnahme - dans qui es keinerlei Probleme gibt - sommes arrêt Funktionen quelle une ProcAddr besoin mais sich seulement finissons si le travail geschehen ist! Roland hat ProcAddr eigendlich aussi seulement so gedacht!
[/quote-part:0f571140cc]
alors alle Enum-Funktionen faire aucun Probleme.
[quote-part:0f571140cc=iF]
alors Probs gibts pas, si le Funktion qui Proc derrière qui ProcAddr aufruft, ca aussi seulement tut solange vous selbst encore fonctionne.
[/quote-part:0f571140cc]
alors gibts u.a. avec SendMessageCallback Probleme. cela écrivons sämtlicher Services serait également au-dessous tomber et Probleme faire.
une vernünftigen Taskmanager peux on ensuite également pas écrivons.
[quote-part:0f571140cc=iF]
quoi qui Gleichzeitigkeit avec cela betrifft bedeutet ca pour alle anderen Fälle cela qui Funktion ProcAddr ungeeignet ist. malheureusement![/quote-part:0f571140cc]
c'est très grave. Überhaupt une Taskmanager trop écrivons, ist alors pas possible. Den Speicherverbrauch plusieurs Prozesse im Auge trop behalten, également pas. Vernünftige Registryeditoren tomber wohl aussi flach - au cours de on Unterschlüssel auflistet, pourrait on son Programme seulement schwer bedienbar tenir. une l'heure dans mon Programme einzublenden - allez pas.
si sich cela wirklich pas avec Set(FastMode, 1) tourner autour de läßt, schmeiße je Profan lieber seulement la fois dans qui coin.
cet Problem doit absolument besser dokumentiert ou bien am besten entier beseitigt volonté - là peux on oui dans Teufelsküche venons.
 
13.09.2006  
 



bof on munkelt es pourrait bientôt Abhilfe donner. ;)

là bleibt wohl rien plus comme qui Erkenntnis - et quelque chose attendre...

Zumal - cela ganze wird eigendlich par toi aufgebauscht - cela muss je aussi la fois bien sûr dire!

c'est réellement nichtmal demie so wild!

j'écris très viele Programme quelle ProcAddrs nutzen - je hatte encore ne...aucune solches Phänomen - muss mais aussi en supplément dire - je suis naturellement geübt y mir très bien vorzustellen comment un Source den j'écris oui c'est ca Abläuft - et verhindere avec cela naturellement déjà unbewusst so manch Komplikationen - zumal mir cela ProcAddrProblem comment bereits souvent erwähnt pas récente ist.

Simple verfügbare Beispiele - déjà une derartigen faute dans Konstantinopel ou bien Okrea herbeiführen peut? je crois non.

cela écrivons de ganzen Hives ou bien grobe RegÄnderungen serait je - égal dans quel Discours - eh pas so simple draufzu abarbeiten laisser. Quelque chose comme serait je toujours dans une Pool 1faire quel abgearbeitet wird si le air rein ist. Machs Dir alors pas trop léger!

Du sprichst arrêt très spezielle Sonderfälle à - là mag es naturellement son cela qui ProcAddr pas safe ist. Pour cet Sonderfälle la hâte Du mais comme Programmierer genügend Ausweichmethoden zur main.

Alles allez nunmal dans aucun Discours - wohlbemerkt - un safe ProcAddr peux je mir présenter wird es dans XProfan donner!
 
13.09.2006  
 




Sebastian
König
allô Andreas,

[quote-part:afe202e11c](...) c'est très grave. Überhaupt une Taskmanager trop écrivons, ist alors pas possible. Den Speicherverbrauch plusieurs Prozesse im Auge trop behalten, également pas. Vernünftige Registryeditoren tomber wohl aussi flach - au cours de on Unterschlüssel auflistet, pourrait on son Programme seulement schwer bedienbar tenir. une l'heure dans mon Programme einzublenden - allez pas.
si sich cela wirklich pas avec Set(FastMode, 1) tourner autour de läßt, schmeiße je Profan lieber seulement la fois dans qui coin.[/quote-part:afe202e11c]
comme Workaround peux Du oui erstmal qui aktuelle Profan2Cpp-Beta prendre . avec cela tritt qui Problematik schließlich pas sur, comment wir [...]  déjà diskutiert avons...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.09.2006  
 



Habe sowieso avant, mir Profan2Cpp zuzulegen.
 
15.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.201 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