Page 1 sur 1

Utiliser le buffer video à partir d'une DLL.

Publié : jeu. 07/août/2008 22:42
par Ouaf-Ouaf
Lut,


J'ai déjà fait un gros boulot sur mes interfaces, pour l'adapter aux differentes resolutions d'ecran.. Qui de plus ne sont même pas homothétiques.. (proportionelles) mais je sais qu'à un moment ou a un autre, je me concentrerais dessus pour les rendre plusse mieux..

Ca me conviendrait bcp d'avoir des Dll, tant pour mon ego ( whaaa jé dé dé elle elle comme un vré pro ), que ... pour mon ego.. ( en faite ) ( mais sur plusieurs plans ). BREF

Apparement, pour "manipuler" enfin.. envoyer des infos au buffer ecran... via ces bouts de programme externes... Il me faudrait pouvoir lui (la dll) indiquer à quelle adresse proceder...

En gros si je fais une dll

ProcedureDLL socle( Y )
DisplaySprite(N,X,Y)
Endprocedure

Quand je l'appel dans le main, le compilo le prends mal et me reponds "write error at adress 0" "8" avant que je reboot d'ailleur..

Donc a priori, il faudrait que je soit capable d'indiquer à cette DLL, où imprimer mon sprite :s...

Malheureusement, je n'ai vraiment aucune idée de comment proceder !

C'est peut être d'ailleur compliqué ? Peut être que je fairais mieux... d'etablir dans mon Dll, la liste des Num de sprites a afficher avec leurs coordonées, et imprimer tout ça a partir de l'exe, dans un boucle ?

Pour l'instant je vais me contenter de ça je pense ...

Si quelqu'un a des infos là dessus... Baaah.. j'lui en serait reconnaissant :s

'rci

Publié : jeu. 07/août/2008 23:00
par Anonyme
hop hop hop , j'ai pas tout suivi...
tu n'as pas besoin de l'adresse vidéo pour afficher un sprite.
comment est faite ta dll ? en purebasic ?
ton exe , comment est til fait lui ? en pb aussi ?


quand je vois :

Code : Tout sélectionner

ProcedureDLL socle( Y )
DisplaySprite(N,X,Y)
Endprocedure 
il manque N & X dans les paramètre de la fct° ?

Publié : jeu. 07/août/2008 23:20
par Ouaf-Ouaf
plop,


J'ai mis içi N et X pour des critières esthetiques :roll: ... Ma vraie dll ( c'est juste celle de test, pour afficher le premier sprite de l'interface )

Effectivement par la suite ça aurait bien été "ProcedureDLL socle(N,X,Y)"

Voiçi les codes utilisés pour les premiers test s :

Code : Tout sélectionner

ProcedureDLL Socle( Y )

 DisplayTransparentSprite(1,0, Y ) 

EndProcedure

Code : Tout sélectionner

If OpenLibrary( #Lib, "Libs\Interface.DLL" )
 Prototype.l Interfaces(Y) : *Socle.Interfaces = GetFunction( #Lib , "Socle")
EndIf
Appelé comme ça

Code : Tout sélectionner

Socle( *Pixs_Y\w ) 

J'ai changé l'interieur de la Dll par "Mouligomme = 123 + Y" et là elle fonctionnait.


Le tout est en .Pb

Publié : ven. 08/août/2008 0:36
par Anonyme

Code : Tout sélectionner

*Socle.Interfaces
l'étoile n'est pas utile , essaye sans.
Socle.Interfaces

Publié : ven. 08/août/2008 1:14
par Ouaf-Ouaf
Argf...

Heu, normalement il y en a bien une à socle() (l'appel donc), mais cette ligne en l'ecrivant içi j'ai zappé l'etoile (alors que le reste est bien copié)

Mmmh.. Je galère avec les Dll de manière generale en faite, j'ai fait quelques tests pour donc creer une array et boucler dans l'exe sur DisplaySprite() selon les attributs retournés, mais mon array demeure vide >.< ...

J'essaye de suivre les exemples de l'aide ( ProcedureReturn sur les arrays ) et .. des posts sur lesquels je suis tombé.. mais pour l'instant rien =[, j'enchaine erreurs sur erreurs.

De toute façon ce soir est mal choisit pour aborder du neuf, le beau-f à payé l'apero >.< ...

Je m'y remettrais demain

Merci quou même !

Publié : lun. 18/août/2008 4:29
par Ollivier
Merdouilloux ! Ouaf-Ouaf ! Merdouilloux !

Je n'ai même pas calculé ton post. Je viens de le découvrir sur le forum anglais. Et la réponse de poshu m'a fait comprendre que tu as posté ici la même question.

Voici pour t'aider ! Je vais poster un petit message là-bas...

Publié : lun. 18/août/2008 22:11
par Ouaf-Ouaf
Aaah ! Merci beaucoup Olliv' !

Je vais regarder ça de près.