1050

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1051

Je m'en fous j'utilise Bitbucket grin
Aaaaouch, ça fait mal. J'ignorais qu'un AWS perdu pouvait être utilisé, indirectement, dans l'équivalent d'un vol d'informations bancaires.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

1052

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1053

Très intéressant. Effectivement les url générées ne sont pas très propres, mais ça change de la classique exploitation des x% de perte possible pour en faire un logo central.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

1054

http://danstonchat.com/16795.html
Un peu violent, ce rateau.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1055

ouch grin

1056

Comme d'habitude, CommitStrip est très bon :
Strip-Ca-va-pas-%C3%AAtre-possible-650-final.jpg
Strip-Prendre-le-train-en-marche-650-final1.jpg
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1057



love

1058

trisotfl

1059

magictop

GT Pas fan du C++
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

1060

1 point Godwin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1061

laught
So much code to write, so little time.

1062

http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967
Ca, ça poutre ! grin
Bon, j'étais en train de bricoler un "compilateur de ressources", enfin plus exactement un archiveur, avec une api pour récupérer les fichiers facilement depuis le programme utilisateur.
Mais son truc, c'est tentant, même si ça fait un peu bricolage ^^

1063

À l'époque j'avais tout simplement ajouté mes ressources à la fin de l'exe après compilation, et à la toute fin la taille des données ajoutées.
Comme ça le programme lisait argv[0] et trouvait ses données tout seul.

1064

Et c'est suffisant, le format d'exécutable supporte ça ?

1065

Le format d'exécutable n'y voit rien, il n'a pas besoin de le savoir (sauf si par malchance il se base sur la fin du fichier, mais dans mon cas, sur windows, ça fonctionnait grin — et je l'avais proposé à un collègue il y a seulement quelques années, ça marchait très bien sur Win 7)

1066

Il y a plus simple: cette macro d'une ligne marche avec n'importe quel target GCC qui utilise GNU as (en une version pas totalement antique, ça a été rajouté il y a une dizaine d'années).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1067

en gros :
- compilation qui génère mon exe sans les données
- patch :
fopen(exe)
fsseek à la fin
fwrite mes données
fwrite la taille des données
fclose()

- exe principal
main()
{
fopen(argv[0])
fseek(à la fin - sizeof(int))
int size
fread(&size, sizeof(int))
fseek(depuis la fin - size - sizeof(int))
byte[] data
fread(data,size)
}

Kevin > C'est pas portable embarrassed
De toute façon, JAR marche bien pour les vrais langages cheeky

1068

Tu roxes Kevin, c'est exactement ça qu'il me faut \o/
Je vais juste faire un wrapper pour embarquer aussi le nom du fichier et connaitre sa taille, histoire de pouvoir le reconstituer. Certaines libs peuvent en avoir besoin.
Mais sinon c'est parfait ton truc top

Pen^2 -> j'avais bien compris comment ça marchait, mais c'est quand même une méthode un peu moins orthodoxe ^^

1069

Pen^2 ta methode est celle utilise par 99% des app qui embarquent des donnes, et c'est d'ailleurs la methode la plus propre a vrai dire car ne demande pas de modifier l'executable/code en lui meme.

C'est comme ca que marche les zip et autre rar auto extractable, les fichier .bin qu'on trouve sous linux qui sont un script shell avec un payload binaire etc...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

1070

À noter qu'il existe un moyen "propre" d'intégrer ce genre de données dans un exécutable Windows, et de les utiliser à la demande sans devoir aller lire le fichier exécutable et allouer la mémoire soi-même :
https://en.wikipedia.org/wiki/Resource_%28Windows%29

Mais évidemment ce n'est pas portable.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1071

C'est vrai, on peux aussi utiliser des section du format ELF d'une maniere assez proche, mais ce n'est pas portable non plus
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

1072

Pen^2 (./1067) :
Kevin > C'est pas portable embarrassed
Ta méthode n'est pas portable non plus:
  • Elle présuppose que le format tolère les octets poubelle à la fin. Contre-exemple: le format des TI-68k.
  • Elle présuppose que argv[0] contient un chemin absolu ou du moins relatif au dossier courant (et aussi l'extension implicite comme .EXE s'il y en a une), ce qui n'est pas garanti non plus. Sous *nix, argv[0] est le nom tel qu'il a été rentré en la ligne de commande, donc généralement (exécutable dans le PATH), fopen(argv[0]) ne fonctionnera pas! (Le noyau Linux propose /proc/self/exe, mais ce n'est évidemment pas portable non plus.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1073

Mouais, mouais, mouais embarrassed
fopen(system(
#if win32
where
#elif unix
which
#else
# error gtfo
#endif
argv[0])) ? grin

1074

Ça spawne un process pour rien, et y'a une race condition potentielle si PATH/$PATH change entre le moment le programme est lancé et le moment où tu exécutes ce code embarrassed
(comment ça, "c'est pas réaliste" ?)

Si tu veux vraiment faire ça, autant le faire proprement avec GetModuleFileName sous Windows, ou /proc/self/exe sous Linux.

Tiens d'ailleurs, en parlant de Linux, il va se passer quoi si l'utilisateur n'a pas le droit "r" sur le fichier exécutable ? #sifflote#

EDIT : Et ton ./1067 est potentiellement foireux si tu crosscompiles, je te laisse chercher pourquoi ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1075

J'aime spawnwer des process embarrassed

Les questions d'endianness sont laissées en exercice au lecteur embarrassed

1076

Mouais tongue
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

1077

Zerosquare (./1074) :
Tiens d'ailleurs, en parlant de Linux, il va se passer quoi si l'utilisateur n'a pas le droit "r" sur le fichier exécutable ? #sifflote#
fopen va renvoyer NULL, et tu vas te taper une erreur si ton code a prévu l'erreur ou un SIGSEGV si tu n'y as pas pensé.

Je considère cette idée de concaténer les ressources à la fin de l'exécutable comme un hack totalement crade, non-portable et bogué. sick
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1078

Bref, t'es jaloux.

1079

Je n'ai aucune raison de l'être, parce que Folco a aussi préféré ma solution, beaucoup plus fiable.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1080

le sizeof(int) ?