Page 1 sur 1

gros probleme

Publié : jeu. 26/oct./2006 18:00
par graph100
bon j'ai changer d'ordi et je me retrouve avec plusieur probleme :

ces deux probleme sont avec 4.00 et 3.94 avec xp pro


1: je ne peut plus crée de lib avec taillbite qui fonctionne : il fait reference a une librairie du nom de malibrairie_INIT et quand le compilateur démarre avec cette lib dans les userlib il ne reconnais plus aucune fonction a part les API
c'est enbetant !!

2: le programme accepte d'initialiser les sprite3d mais quand je fais Start3d() il plante !!
c'est aussi embetant

voila

a et je ne trouve plus comment on fait la liste des fenetres ouvertes dans window
et si qqun sait comment dessiner sur le bureau c super !!

Re: gros probleme

Publié : jeu. 26/oct./2006 20:16
par Backup
graph100 a écrit :bon j'ai changer d'ordi et je me retrouve avec plusieur probleme :

ces deux probleme sont avec 4.00 et 3.94 avec xp pro


1: je ne peut plus crée de lib avec taillbite qui fonctionne : il fait reference a une librairie du nom de malibrairie_INIT et quand le compilateur démarre avec cette lib dans les userlib il ne reconnais plus aucune fonction a part les API
c'est enbetant !!

2: le programme accepte d'initialiser les sprite3d mais quand je fais Start3d() il plante !!
c'est aussi embetant

voila
une reinstallation de purebasic et de taillbite me semble necessaire
:D

a et je ne trouve plus comment on fait la liste des fenetres ouvertes dans window
et si qqun sait comment dessiner sur le bureau c super !!

vla pour les fenetres :D


Procedure Window()
    hwnd.l = FindWindow_ ( 0, 0 )
     While hwnd <> 0
         If GetWindowLong_ (hwnd, #GWL_STYLE ) & #WS_VISIBLE = #WS_VISIBLE
             ; If GetwindowLong_(Hwnd, #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW <> #WS_EX_TOOLWINDOW
            txt.s = Space (256)
             GetWindowText_ (hwnd, txt, 256)
             If txt <> ""
                 Debug txt
             EndIf
             ; EndIf
         EndIf
        hwnd = GetWindow_ (hwnd, #GW_HWNDNEXT )
     Wend
EndProcedure

Window()


pour dessiner sur le bureau faut rechercher un code du Soldat inconnu
a propos d'une Chenille :D

Publié : jeu. 26/oct./2006 21:52
par Anonyme
Et Voila pour dessiner sur le bureau :

Code : Tout sélectionner

Procedure.l DesktopOutput()
 Mem.l = AllocateMemory(800)
 PokeL(Mem, 1)
  ProcedureReturn Mem
EndProcedure 


T = ElapsedMilliseconds()+1000
Repeat 
ExamineDesktops()
StartDrawing(DesktopOutput())
For y = 0 To DesktopHeight(0) Step 32  
For x = 0 To DesktopWidth(0) Step 32
Box(x,y,16,16,RGB(Random(255),Random(255),Random(255)))
Next 
Next
StopDrawing()
Until T<ElapsedMilliseconds()

StartDrawing(DesktopOutput())
For y = 0 To DesktopHeight(0) Step 20 
DrawText(0,y,"ERROR, I WAS DESTROYED YOUR COMPUTER ! ")
Next 
StopDrawing()

Publié : ven. 27/oct./2006 18:36
par graph100
merci beaucoup

@Dobro :
j'ai deja reinstalle taillbite plusieur fois mais il ne marche pas
pour pb c pareil

peut etre l'ordi est trop vieux : pentium 2 ??

Re: gros probleme

Publié : ven. 27/oct./2006 19:01
par Anonyme2
graph100 a écrit :bon j'ai changer d'ordi et je me retrouve avec plusieur probleme :

ces deux probleme sont avec 4.00 et 3.94 avec xp pro


1: je ne peut plus crée de lib avec taillbite qui fonctionne : il fait reference a une librairie du nom de malibrairie_INIT et quand le compilateur démarre avec cette lib dans les userlib il ne reconnais plus aucune fonction a part les API
c'est enbetant !!

2: le programme accepte d'initialiser les sprite3d mais quand je fais Start3d() il plante !!
c'est aussi embetant
1) Avec Purebasic, lorsque l'on fait une lib, on peut créer une procédure d'initialisation et une procédure qui s'exécute à la fermeture. On n'appelle pas ces procedures mais c'est le compilateur qui s'en charge. Une seule et même procedure d'initialisation pour toute la librairie que tu crée.

Ces 2 procedures s'exécutent tout seul, elles permettent par exemple d'initiliser des variables, d'allouer de la mémoire, de déclarer des listes chainées ou tout ce que tu veux.

La procédure qui s'exécute à la fin permet par exemple de libérer les blocs mémoire alloués à l'initilisation etc.

Il me semble que Tailbite utilise pour la procedure d'initialisation, le suffixe _Init et pour celle qui s'exécute à la fin le suffixe _End (voir la doc de Tailbite)

Par exemple

Code : Tout sélectionner

ProcedureDll Maprocedure_Init()

Code : Tout sélectionner

ProcedureDll Maprocedure_End()
Comme je ne sais pas ce que tu fait, il se peut que cette procedure n'existe pas ou fonctionne mal (sans le code difficile à dire)

Pour le plantage, c'est normal car la procedure d'initialisation doit fixer des paramètres etc qui font défaut lorsque tu démarres.

Je pense que c'est inutile de réinstaller PB.

Tailbite utilise aussi ses propres libs, mais d'après ce que tu dis le problème doit être ailleurs. Alors surememnt pas obliger de réinstaller.

Va dans le dossier des lib utilisateur, vires celle que tu est en train de faire, vérifie que ta procedure d'initialisation et celle de fermeture existent et n'ont pas de problèmes de code.

Recommence avec tailbite.

As-tu un message avec des constantes en double ou déjà déclarée ?