Progi1984 - Programmes & Userlibs

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

TazNormand a écrit :Question conne , mais où on peut télécharger ton wrapper FMod ???

Bon y'a pas urgence, je pars en vacances demain matin, néanmoins si jamais tu passes par là dans la journée pour éclairer ma lanterne, voisin normand :wink:

je t'en serai infiniment reconnaissant.
Réponse conne :D
http://code.google.com/p/rwrappers/sour ... trunk/FMod

PS : Ya pas de questions connes, voisin !
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Message par TazNormand »

merci beaucoup, je viens de récupérer les fichiers, je regarderai ça dans 15 jours

@++
Image
Image
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.
Progi1984 a écrit :Bon, j'ai mis à jour l'include pour faire un truc propre
( http://code.google.com/p/rwrappers/sour ... url_Inc.pb )

Et tout ca aprés une idée dans les chiottes :p

PS : Vas y ! pose les tes questions :)
Ah! toi aussi c'est là que tu as tes meilleures idées :lol:.

C'est vrai que parfois devant son écran on bloque et une fois que l'on fait autre chose, des idées lumineuses nous apparaissent.

J'ai récupéré ton code et cela ne fonctionne pas sous Windows.
De ça qui n'est pas bon :
DQuote#_Val#DQuote

Je suis arrivé à ça qui fonctionne :
DQuote _#Val DQuote

Mais même si c'est fonctionnel, cela donne ça en réalité :
curl_easy_cleanup(handle.l) As " _curl_easy_cleanup "

Bref! on a un espace après le 1er guillemet et un espace avant le guillemet de fermeture.

A toi de voir s'il y a mieux [EDIT : Voir mon second message pour la solution].

Et pour Linux je n'ai pas le temps de faire le test maintenant.
J'essaierai demain.

Mes questions (que j'avais posé dans un post précédent) :

[1] Sous Windows qu'est ce que c'est toutes ces cochonneries qu'il faut mettre en plus de "LibCurl.dll".
Je parle de :
libeay32.dll
ssleay32.dll
zlib1.dll

[2] Et sous linux, que faut-il fournir en plus de l'exécutable ?
Pour 1 personne qui n'aurait bien évidemment pas libcurl d'installé.

Merci de t'être pris la tête pour ma pomme.

A plus.
Dernière modification par Geo Trouvpatou le mar. 11/août/2009 18:17, modifié 2 fois.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

J'ai un début de solution mais en modifiant la macro SymbolName() en lui ajoutant un argument [EDIT : Maintenant la solution est 100% fonctionnelle]

Pour faire apparaitre la fenêtre d'erreur de macro et voir la début de la conversion je provoque volontairement une erreur comme ceci :
L'erreur est qu'il n'y a pas le guillemet de fin.
Macro SymbolName(Val)
DQuote#_#Val #DQuote
EndMacro

Par contre en ajoutant un param de plus dans "SymbolName", cela donne ça :
(Pour mes essais j'ai renommé SymbolName en SymbolName2)
Macro SymbolName2(Guillemet, Val)
Guillemet#_#Val #DQuote
EndMacro

Ensuite pour les imports, au lieu de :
curl_easy_cleanup(handle.l) As SymbolName(curl_easy_cleanup)

Je met :
curl_easy_cleanup(handle.l) As SymbolName2(DQuote, curl_easy_cleanup)

En regardant les macros on se dit que :
DQuote#_#Val #DQuote
et
Guillemet#_#Val #DQuote

C'est la même chose.
Et bien non parce que pour :
DQuote#_#Val #DQuote on obtient :
curl_easy_cleanup(handle.l) As "#_curl_easy_cleanup #DQuote
Le dièse est en trop.


Alors que pour ma macro :
Guillemet#_#Val #DQuote on obtient :
curl_easy_cleanup(handle.l) As "_curl_easy_cleanup #DQuote
Le début est bon et il n'y à pas d'espace après le 1er guillemet.

Je continue pour voir si je ne vais pas avoir de problème pour la fin et je réédite.
[EDIT] IMPECCABLE

Toujours pour faire apparaitre la fenêtre d'erreur de macro et voir la fin de la conversion je provoque volontairement une erreur comme ceci :
L'erreur est qu'il n'y a pas le guillemet de début.
Guillemetq#_#Val#Guillemet

et j'obtiens donc :
curl_easy_cleanup(handle.l) As Guillemetq#_curl_easy_cleanup"
La fin est bonne et il n'y a pas d'espace avant le guillemet de fin.

Donc la macro fonctionnelle serait :

Code : Tout sélectionner

Macro SymbolName(Guillemet, Val)
Guillemet#_#Val#Guillemet
EndMacro
Et les imports :

Code : Tout sélectionner

;- Imports
ImportC #LibCurl_ImportLib
curl_easy_cleanup(handle.l) As SymbolName(DQuote, curl_easy_cleanup)
curl_easy_duphandle(handle.l) As SymbolName(DQuote, curl_easy_duphandle)
curl_easy_getinfo(curl.l, info_type.l, info.l) As SymbolName(DQuote, curl_easy_getinfo)
curl_easy_init() As SymbolName(DQuote, curl_easy_init)
curl_easy_perform(handle.l) As SymbolName(DQuote, curl_easy_perform)
curl_easy_reset(handle.l) As SymbolName(DQuote, curl_easy_reset)
curl_easy_setopt(handle.l, option.l, parameter.l) As SymbolName(DQuote, curl_easy_setopt)
curl_easy_strerror(errornum.l) As SymbolName(DQuote, curl_easy_strerror)
curl_escape(url.l, length.l) As SymbolName(DQuote, curl_escape)
curl_formadd(firstitem.l, lastitem.l) As SymbolName(DQuote, curl_formadd)
curl_formfree(form.l) As SymbolName(DQuote, curl_formfree)
curl_free(ptr.l) As SymbolName(DQuote, curl_free)
curl_getdate(datestring.l, now.l) As SymbolName(DQuote, curl_getdate)
curl_getenv(name.l) As SymbolName(DQuote, curl_getenv)
curl_global_cleanup() As SymbolName(DQuote, curl_global_cleanup)
curl_global_init(flags.l) As SymbolName(DQuote, curl_global_init)
curl_global_init_mem(flags.l, m.l, f.l, r.l, s.l, c.l) As SymbolName(DQuote, curl_global_init_mem)
curl_mprintf(format.l) As SymbolName(DQuote, curl_mprintf)
curl_mfprintf(fd.l, format.l) As SymbolName(DQuote, curl_mfprintf)
curl_msprintf(buffer.l, format.l) As SymbolName(DQuote, curl_msprintf)
curl_msnprintf(buffer.l, maxlength.l, format.l) As SymbolName(DQuote, curl_msnprintf)
curl_mvprintf(format.l, args.l) As SymbolName(DQuote, curl_mvprintf)
curl_mvfprintf(fd.l, format.l, args.l) As SymbolName(DQuote, curl_mvfprintf)
curl_mvsprintf(buffer.l, format.l, args.l) As SymbolName(DQuote, curl_mvsprintf)
curl_mvsnprintf(buffer.l, maxlength.l, format.l, args.l) As SymbolName(DQuote, curl_mvsnprintf)
curl_maprintf(format.l) As SymbolName(DQuote, curl_maprintf)
curl_mvaprintf(format.l, args.l) As SymbolName(DQuote, curl_mvaprintf)
curl_multi_add_handle(multi_handle.l, easy_handle.l) As SymbolName(DQuote, curl_multi_add_handle)
curl_multi_cleanup(multi_handle.l) As SymbolName(DQuote, curl_multi_cleanup)
curl_multi_fdset(multi_handle.l, read_fd_set.l, write_fd_set.l, exc_fd_set.l, max_fd.l) As SymbolName(DQuote, curl_multi_fdset)
curl_multi_info_read(multi_handle.l, msgs_in_queue.l) As SymbolName(DQuote, curl_multi_info_read)
curl_multi_init() As SymbolName(DQuote, curl_multi_init)
curl_multi_perform(multi_handle.l, running_handles.l) As SymbolName(DQuote, curl_multi_perform)
curl_multi_remove_handle(multi_handle.l, easy_handle.l) As SymbolName(DQuote, curl_multi_remove_handle)
curl_multi_strerror(errornum.l) As SymbolName(DQuote, curl_multi_strerror)
curl_share_cleanup(share_handle.l) As SymbolName(DQuote, curl_share_cleanup)
curl_share_init() As SymbolName(DQuote, curl_share_init)
curl_share_setopt(share.l, option.l, parameter.l) As SymbolName(DQuote, curl_share_setopt)
curl_share_strerror(errornum.l) As SymbolName(DQuote, curl_share_strerror)
curl_slist_append(slist.l, string.p-utf8) As SymbolName(DQuote, curl_slist_append)
curl_slist_free_all(slist.l) As SymbolName(DQuote, curl_slist_free_all)
curl_strequal(str1.l, str2.l) As SymbolName(DQuote, curl_strequal)
curl_strnequal(str1.l, str2.l, len.l) As SymbolName(DQuote, curl_strnequal)
curl_unescape(url.l, length.l) As SymbolName(DQuote, curl_unescape)
curl_version() As SymbolName(DQuote, curl_version)
curl_version_info(type.l) As SymbolName(DQuote, curl_version_info)
EndImport;}
Mais faudrait revoir le truc pour Linux.

A toi de voir ce que tu veux faire.

[EDIT] Je viens de faire l'essai sous Linux et effectivement avec ton code d'origine cela passe sans problème.

Si tu optes pour la macro bidouillé, je pourrai l'adapter pour Linux (A moins que tu ne le fasses).
Dis moi ce que tu comptes faire.

Sinon j'ai vu que tu avais ajouté #LibCurl_SeparatorDir ;)

A plus.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Je viens de mettre à jour le SVN avec le wrapper MAJ pour la version 7.19.5 de LibCurl ainsi que les fix concernant la macro pour l'import.

J'attends ton feedback.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut Progi.

Donc comme expliqué (Peut-être mal) dans mes posts ci-dessus, avec ton code actuel, au lieu d'obtenir ça :

Code : Tout sélectionner

curl_easy_cleanup(handle.l) As "_curl_easy_cleanup"
En réalité après remplacement, on obtient :

Code : Tout sélectionner

curl_easy_cleanup(handle.l) As " _curl_easy_cleanup"
Avec un espace après le guillemet d'ouverture.

C'est pour ça que la seule solution que j'avais trouvé était une macro avec 2 arguments qui permet d'obtenir le As "_curl_easy_cleanup" sans espace à l'intérieur.

Maintenant si tu penses que cet espace ne peut pas provoquer de dysfonctionnement, alors tout fonctionne bien.

A plus.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Je considère le problème de concaténation dans la macro comme un bug.

J'ai donc posté un bug report sur le forum anglais : http://www.purebasic.fr/english/viewtopic.php?t=38476

Dés que j'ai des nouvelles, je te tiens au courant.
De toute façon, cela ne gène pas à l'exécution.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Oki pas de problèmes.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Comme tu peux le voir, cela semblerait être un bug de PureBasic : http://www.purebasic.fr/english/viewtopic.php?t=38476
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Bon le principal étant que cela fonctionne dans notre cas ;)

Et tu n'as toujours pas répondu à mes questions :lol:.

[1] Sous Windows qu'est ce que c'est toutes ces cochonneries qu'il faut mettre en plus de "LibCurl.dll".
Je parle de :
libeay32.dll
ssleay32.dll
zlib1.dll

[2] Et sous linux, que faut-il fournir en plus de l'exécutable ?
Pour 1 personne qui n'aurait bien évidemment pas libcurl d'installé.

A plus.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Geo Trouvpatou a écrit :[1] Sous Windows qu'est ce que c'est toutes ces cochonneries qu'il faut mettre en plus de "LibCurl.dll".
Je parle de :
libeay32.dll
ssleay32.dll
zlib1.dll
Ce sont des dll utilisés pour utiliser tout ce qui utilisait le SSL (SFTP, HTTPS, etc...).
Geo Trouvpatou a écrit :[2] Et sous linux, que faut-il fournir en plus de l'exécutable ?
Pour 1 personne qui n'aurait bien évidemment pas libcurl d'installé.
Les packages openssl et libcurl. (à eux de l'installer).
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Merci pour ta réponse Progi.

Par contre, je suis un peu dégouté pour Linux.
J'espérais un truc plus simple (Comme Windows) du genre un ".so" à mettre avec le soft :cry:.

Bye.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Mais les paquets c'est tout aussi simple surtout que libcurl et openssl font partie des paquets par défaut de beaucoup de distribs.
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Progi1984 - Programmes & Userlibs

Message par Ar-S »

Salut progi, dis moi ou est-ce que je peux récupérer ton wrapper Freeimage, le lien http://www.penguinbyte.com/apps/pbwebst ... _3.9.3.zip est raide.

---edit----
j'ai récupe une version sur http://www.purearea.net/pb/english/index.htm
je vais voir ce que ça donne.

----edit2-----
Elle a l'air de bien marcher, par contre il manque un truc essentiel.. un fichier d'aide !
les 3 examples fournis ne sont hélas pas très parlant ni complet
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: Progi1984 - Programmes & Userlibs

Message par Progi1984 »

Les dernières versions des wrappers sont là :
http://code.google.com/p/rwrappers/
Répondre