Tailbite peut générer des lib threadsafe et/ou unicode.
Une librairie classique, peut-elle sans modification devenir threadsafe et/ou unicode juste en spécifiant à TB de la compiler avec les bonnes options.
Si il n'y a aucune modif de code à faire, dois-je fournir les 4 versions de la librairie ?
- La version normale
- La version ThreadSafe
- La version Unicode
- La version ThreadSafe et Unicode
JaPBe ne semble pas gérer l'autocomplétion des lib ThreadSafe ( peut-être car elles sont placées dans 'PureBasic\SubSystems\UserLibThreadSafe\PureLibraries' ? )
Tailbite /THRD /UCOD
Re: Tailbite /THRD /UCOD
Voir le SDK de PB ...Droopy a écrit :Une librairie classique, peut-elle sans modification devenir threadsafe et/ou unicode juste en spécifiant à TB de la compiler avec les bonnes options.
Tu dois avoir une variante de la procedure pour chaque cas : Bip(), Bip_THREAD(), Bip_UNICODE(), ... pas possible avec Tailbite.
...
* Thread: Informs the compiler than this function has a THREAD specific version. If the function needs to be
tuned to be threadsafe, and the performance/size impact will be important, it's advised to use this flag
and create a function which will be used only when the executable will be thread safe (ie: compiled with the
/THREAD flag). The command should be named PB_CommandName_THREAD()
* Unicode: Informs the compiler than this function has an UNICODE specific version. If the function returns
a string or has some string parameter, it's strongly recommanded to use this flag and add the unicode version
so the command can be used in unicode program as well (else it will work in ascii only).
The command should be named PB_CommandName_UNICODE(). Note: if your command also has the 'Thread' flag, you
need to do another command name PB_CommandName_THREAD_UNICODE() which will be used if the program is compiled
with the /THREAD and /UNICODE flag.
...
Aucune modification, c'est étonnant ...Droopy a écrit :Si il n'y a aucune modif de code à faire, dois-je fournir les 4 versions de la librairie ?
Soit les 4 versions, soit une version comme décrit ci-dessus.
jaPBe demande au compilateur la liste des fonctions (commande FUNCTIONLIST).Droopy a écrit :JaPBe ne semble pas gérer l'autocomplétion des lib ThreadSafe ( peut-être car elles sont placées dans 'PureBasic\SubSystems\UserLibThreadSafe\PureLibraries' ? )
Merci Gnozal, je me permet de t'indiquer ce que j'ai compris à la lecture de ta réponse.
Pour une fonction Test() il faut aussi créer les fonctions test_THREAD() test_UNICODE() et test_THREAD_UNICODE().
Dans TB il faudrait créer plusieurs fichiers et les compiler avec l'option associée.
Merci de me corriger si je me trompe.
Pour une fonction Test() il faut aussi créer les fonctions test_THREAD() test_UNICODE() et test_THREAD_UNICODE().
Dans TB il faudrait créer plusieurs fichiers et les compiler avec l'option associée.
Merci de me corriger si je me trompe.
Oui, c'est çà. Mais il faut programmer en ASM ou en C : Tailbite ne sait pas faire.Droopy a écrit :Pour une fonction Test() il faut aussi créer les fonctions test_THREAD() test_UNICODE() et test_THREAD_UNICODE().
Oui.Droopy a écrit :Dans TB il faudrait créer plusieurs fichiers et les compiler avec l'option associée.
Oui, je sais, c'est moi qui les aie ajoutées en 2006 ... mais Tailbite ne sait pas créer une librairie 'composite' qui contient les 4 types de fonctions Test()/Test_THREAD()/Test_UNICODE()/Test_THREAD_UNICODE() dans le même fichier.Droopy a écrit :C'est bizare qu'il faille programmer en ASM ou C
Car il y a l'option /THRD /UCOD dans TB.
Avec Tailbite, une libraire créée avec /UCOD ne fonctionnera qu'en mode unicode. Il en faudra une autre créée avec /THRD pour fonctionner en mode threadsafe, etc ...
En résumé :
- programmation façon SDK : 1 lib pour les 4 modes.
- programmation façon Tailbite : 4 libs pour les 4 modes, une par mode.