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.