Page 10 sur 14

Publié : jeu. 06/août/2009 11:17
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 !

Publié : jeu. 06/août/2009 11:23
par TazNormand
merci beaucoup, je viens de récupérer les fichiers, je regarderai ça dans 15 jours

@++

Publié : jeu. 06/août/2009 17:21
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.

Publié : jeu. 06/août/2009 17:55
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.

Publié : lun. 10/août/2009 15:36
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.

Publié : lun. 10/août/2009 16:42
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.

Publié : mar. 11/août/2009 7:35
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.

Publié : mar. 11/août/2009 17:38
par Geo Trouvpatou
Oki pas de problèmes.

Publié : mar. 11/août/2009 17:44
par Progi1984
Comme tu peux le voir, cela semblerait être un bug de PureBasic : http://www.purebasic.fr/english/viewtopic.php?t=38476

Publié : mar. 11/août/2009 18:17
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.

Publié : mar. 11/août/2009 20:05
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).

Publié : ven. 14/août/2009 14:20
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.

Publié : ven. 14/août/2009 14:22
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.

Re: Progi1984 - Programmes & Userlibs

Publié : ven. 30/oct./2009 13:22
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

Re: Progi1984 - Programmes & Userlibs

Publié : ven. 30/oct./2009 16:35
par Progi1984
Les dernières versions des wrappers sont là :
http://code.google.com/p/rwrappers/