Page 6 sur 14

Publié : mar. 03/juin/2008 18:15
par Jacobus
Super, Il n'y a plus qu'à attendre 8) Merci.

Publié : lun. 07/juil./2008 18:01
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.

Publié : ven. 11/juil./2008 18:18
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 ?

Publié : dim. 13/juil./2008 14:36
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.

Publié : dim. 13/juil./2008 15:44
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
:)

Publié : lun. 14/juil./2008 8:09
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

Publié : dim. 07/sept./2008 19:25
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.

Publié : mar. 30/déc./2008 7:44
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

Publié : mer. 31/déc./2008 10:47
par Progi1984
Denis, je regarde ce we.

Publié : sam. 03/janv./2009 18:04
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 ?

Publié : sam. 03/janv./2009 19:26
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.

Publié : dim. 04/janv./2009 20:52
par Jacobus
Salut Progi1984, tu penses mettre RLibPlus à jour pour la 4.30 ?
J'en ai justement besoin :?

Publié : dim. 04/janv./2009 22:02
par Progi1984
Je te la mets à jour en début de semaine, surement lundi ou mardi :)

Publié : lun. 05/janv./2009 12:08
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...

Publié : dim. 26/avr./2009 19:50
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()