Progi1984 - Programmes & Userlibs

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Super, Il n'y a plus qu'à attendre 8) Merci.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Release de Juillet 2008 :

RLibPlus.zip
Image
Taille : 360Ko

Code : Tout sélectionner

Anciennement connu sous le nom de LibEditorPlus, cette lib a été amélioré et s'applique à de nombreux autres gadgets.

Code : Tout sélectionner

Historique : 0.1.1 : Ajout du support de la coloration syntaxique
News : Pas de release en Aout ; la prochaine release aura leu en Septembre.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

J'ai testé RCam. C'est super ! 8)

Bravo ! Franchement. ça me range l'ego de voir autant de librairies présentées ici. Bon courage !

Ollivier

PS : J'ai eu quelques petits bugs. Notamment le RCam_End() à sauter. C'est un reliquat ?
fd
Messages : 70
Inscription : mar. 15/mars/2005 21:41
Localisation : Savoie

Message par fd »

Bonjour,

J'ai un problème de compatibilité entre RLibPlus et la version 4.20.

POLINK: error: Unresolved external symbol '_PB_Mid'.
POLINK: fatal error: 1 unresolved external(s).

Dommage, je voulais modifier des zones de textes en RTF et je m'étais appuyé sur LibEditorPlus.

Merci de votre avis.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

fd a écrit : Dommage, je voulais modifier des zones de textes en RTF et je m'étais appuyé sur LibEditorPlus.

Merci de votre avis.
d'un autre coté tu peux jeter un oeil la :
http://www.purebasic.fr/french/viewtopi ... hlight=rtf
:)
fd
Messages : 70
Inscription : mar. 15/mars/2005 21:41
Localisation : Savoie

Message par fd »

fd a écrit :Bonjour,

J'ai un problème de compatibilité entre RLibPlus et la version 4.20.

POLINK: error: Unresolved external symbol '_PB_Mid'.
POLINK: fatal error: 1 unresolved external(s).

Dommage, je voulais modifier des zones de textes en RTF et je m'étais appuyé sur LibEditorPlus.

Merci de votre avis.
Merci Dobro.
Problème résolu ... c'était PurePDF qui n'était pas compatible ... DSL
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Release de Septembre 2008 :

RPack.zip
Image
Taille: 74Ko

Code : Tout sélectionner

MAJ pour PB 4.20.
DB_SQLite_0.3.zip
Image
Taille: 231Ko

Code : Tout sélectionner

Release with SQLite 3.6.0.
GoogleCode : RWrappers

Code : Tout sélectionner

Collection de tous les RWrappers.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je tente d'utiliser depuis hier la lib Png avec ton wrapper.

J'ai réussi une lecture partielle de l'image PNG d'une icône Vista compressée avec les fonctions

png_check_sig
png_create_read_struct
png_create_info_struct
png_read_from_mem
png_destroy_read_struct

mais lors de la lecture des infos dans la callback d'énumération png_read_from_mem() qui lit en suivant chaque donnée, je n'ai que 3 boucles, la première qui lit l'identifiant, la deuxième qui lit le long suivant qui est la taille du segment IHDR (=chunk IHDR) et la troisième qui lit les caractète IHDR (à l'envers), là c'est bon mais l'adresse d'écriture fournie par la callback pour stocker les données (là je suppose) devrait me faire arriver sur l'élément chunk_name.b[5] de la structure png_struct_def ou sur la liste des segments mais je suis beaucoup plus loin dans la structure sur une valeur qui n'a rien à voir.

Je suppose que la structure png_struct_def sera à revoir vu le nombre de #ifdef et de #if defined() qu'elle contient.

Comme j'utilise la dll et que ces structures sont allouées en mémoire par la lib, je ne sais pas dans quel mode elle a été compilée .....


Le type png_byte est défini comme ceci dans le fichier pngconf.h
typedef unsigned char png_byte;
c'est donc un caractère

J'ai corrigé pour l'instant les tableaux de définition des noms des segments

La définition du segment IHDR par exemple est celle-ci:

Code : Tout sélectionner

#define PNG_IHDR png_byte png_IHDR[5] = { 73,  72,  68,  82, '\0'}
Le tableau est un tableau de 5 éléments (de 0 à 4 en PB) de type caractère (.c). J'ai lu de la doc sur les tableau en C, le nombre entre crochet correspond au nombre strict d'éléments du tableau.
J'ai aussi remplacé les valeurs numériques par leur correspondance en lettre pour que ça soit plus parlant.

Par exemple, le segment IHDR était défini dans ton wrapper par :

Code : Tout sélectionner

Global Dim png_IHDR(5) : png_IHDR(0) = 73 : png_IHDR(1) = 72 : png_IHDR(2) = 68 : png_IHDR(3) = 82 : png_IHDR(4) = '\0' : 
Chaque élément est un long ou integer selon la version de PB et pas un caractère.

Voici ce que je te propose

Code : Tout sélectionner

Global Dim png_IHDR.c(4) : png_IHDR(0) = 'I' : png_IHDR(1) = 'H' : png_IHDR(2) = 'D' : png_IHDR(3) = 'R' : png_IHDR(4) = 0 
J'ai aussi modifié le dernier élément qui est un simple 0 de fin de chaine.
Chaque tableau a bien 5 éléments de type caractère et le dernier élément de chaque tableau est un 0 de fin de chaine.

Pour la compilation unicode, je ne sais pas si le .c est correct.

Voici les tableaux modifiés :

Code : Tout sélectionner

Global Dim png_IHDR.c(4) : png_IHDR(0) = 'I' : png_IHDR(1) = 'H' : png_IHDR(2) = 'D' : png_IHDR(3) = 'R' : png_IHDR(4) = 0 
Global Dim png_IDAT.c(4) : png_IDAT(0) = 'I' : png_IDAT(1) = 'D' : png_IDAT(2) = 'A' : png_IDAT(3) = 'T' : png_IDAT(4) = 0 
Global Dim png_IEND.c(4) : png_IEND(0) = 'I' : png_IEND(1) = 'E' : png_IEND(2) = 'N' : png_IEND(3) = 'D' : png_IEND(4) = 0 
Global Dim png_PLTE.c(4) : png_PLTE(0) = 'P' : png_PLTE(1) = 'L' : png_PLTE(2) = 'T' : png_PLTE(3) = 'E' : png_PLTE(4) = 0  
Global Dim png_bKGD.c(4) : png_bKGD(0) = 'b' : png_bKGD(1) = 'K' : png_bKGD(2) = 'G' : png_bKGD(3) = 'D' : png_bKGD(4) = 0 
Global Dim png_cHRM.c(4) : png_cHRM(0) = 'c' : png_cHRM(1) = 'H' : png_cHRM(2) = 'R' : png_cHRM(3) = 'M' : png_cHRM(4) = 0 
Global Dim png_gAMA.c(4) : png_gAMA(0) = 'g' : png_gAMA(1) = 'A' : png_gAMA(2) = 'M' : png_gAMA(3) = 'A' : png_gAMA(4) = 0 
Global Dim png_hIST.c(4) : png_hIST(0) = 'h' : png_hIST(1) = 'I' : png_hIST(2) = 'S' : png_hIST(3) = 'T' : png_hIST(4) = 0  
Global Dim png_iCCP.c(4) : png_iCCP(0) = 'i' : png_iCCP(1) = 'C' : png_iCCP(2) = 'C' : png_iCCP(3) = 'P' : png_iCCP(4) = 0  
Global Dim png_iTXt.c(4) : png_iTXt(0) = 'i' : png_iTXt(1) = 'T' : png_iTXt(2) = 'X' : png_iTXt(3) = 't' : png_iTXt(4) = 0  
Global Dim png_oFFs.c(4) : png_oFFs(0) = 'o' : png_oFFs(1) = 'F' : png_oFFs(2) = 'F' : png_oFFs(3) = 's' : png_oFFs(4) = 0  
Global Dim png_pCAL.c(4) : png_pCAL(0) = 'p' : png_pCAL(1) = 'C' : png_pCAL(2) = 'A' : png_pCAL(3) = 'L' : png_pCAL(4) = 0  
Global Dim png_sCAL.c(4) : png_sCAL(0) = 's' : png_sCAL(1) = 'C' : png_sCAL(2) = 'A' : png_sCAL(3) = 'L' : png_sCAL(4) = 0 
Global Dim png_pHYs.c(4) : png_pHYs(0) = 'p' : png_pHYs(1) = 'H' : png_pHYs(2) = 'Y' : png_pHYs(3) = 's' : png_pHYs(4) = 0  
Global Dim png_sBIT.c(4) : png_sBIT(0) = 's' : png_sBIT(1) = 'B' : png_sBIT(2) = 'I' : png_sBIT(3) = 'T' : png_sBIT(4) = 0  
Global Dim png_sPLT.c(4) : png_sPLT(0) = 's' : png_sPLT(1) = 'P' : png_sPLT(2) = 'L' : png_sPLT(3) = 'T' : png_sPLT(4) = 0  
Global Dim png_sRGB.c(4) : png_sRGB(0) = 's' : png_sRGB(1) = 'R' : png_sRGB(2) = 'G' : png_sRGB(3) = 'B' : png_sRGB(4) = 0  
Global Dim png_tEXt.c(4) : png_tEXt(0) = 't' : png_tEXt(1) = 'E' : png_tEXt(2) = 'X' : png_tEXt(3) = 't' : png_tEXt(4) = 0  
Global Dim png_tIME.c(4) : png_tIME(0) = 't' : png_tIME(1) = 'I' : png_tIME(2) = 'M' : png_tIME(3) = 'E' : png_tIME(4) = 0  
Global Dim png_tRNS.c(4) : png_tRNS(0) = 't' : png_tRNS(1) = 'R' : png_tRNS(2) = 'N' : png_tRNS(3) = 'S' : png_tRNS(4) = 0  
Global Dim png_zTXt.c(4) : png_zTXt(0) = 'z' : png_zTXt(1) = 'T' : png_zTXt(2) = 'X' : png_zTXt(3) = 't' : png_zTXt(4) = 0  

J'ai n'ai pas corrigé les tableaux des structures car la doc PB dit ceci (dans la rubrique structure)
Note : Un tableau statique dans une structure ne se comporte pas de la même façon qu'un tableau défini avec la commande Dim. Ceci pour être conforme au format de structures en C/C++ (pour permettre un portage direct des structures de l'API). Ce qui signifie que a[2] assignera un tableau de 0 à 1 (deux éléments) alors que Dim a(2) assignera un tableau de 0 à 2 (trois éléments).

J'ai corrigé la macro PNG_OUT_OF_RANGE, je l'ai transformé en procedure pour que le résultat soit conforme.

A+

Code : Tout sélectionner

Procedure PNG_OUT_OF_RANGE(value, ideal, delta)
     If (value<(ideal-delta)) Or (value>(ideal + delta))
        ProcedureReturn #True
     Else
       ProcedureReturn #False
     EndIf
EndProcedure
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Denis, je regarde ce we.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Voilà, j'ai mis à jour le SVN vis à vis de tes requêtes et j'en ai profité pour le faire fonctionner sous Linux :
http://code.google.com/p/rwrappers/sour ... unk/LibPNG

Des news de Fred pour les tableaux ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Progi1984 a écrit :Des news de Fred pour les tableaux ?
Non, je lui ai renvoyé un message mais par son site car je ne sais pas s'il a eu mon message.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Salut Progi1984, tu penses mettre RLibPlus à jour pour la 4.30 ?
J'en ai justement besoin :?
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Je te la mets à jour en début de semaine, surement lundi ou mardi :)
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Ok, je te remercie beaucoup de ce suivi 8) , cette lib devenant quasiment indispensable, elle me fait gagner un temps fou.
Manque plus que le fichier d'aide...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

J'ai pu voir que tu avais mis à jour RLibplus sur le forum anglais, mais elle plante sur de simples fenêtres avec un joli Invalid Memory Access (read error at address ...) dans ma boucle d'évènements. Dès que j'utilise des fonctions de ta lib ça foire sur ...

Code : Tout sélectionner

EventID = WindowEvent()
idem sur ...

Code : Tout sélectionner

EventID = WaitWindowEvent()
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre