Bonjour à tous,
D'abord, merci à vous trois d'avoir pris le temps de vous pencher sur mon problème.
Ensuite, je suis en visite pour le weekend donc je n'ai pas moyen de faire un quelconque test pour l'instant.
J'ai essayé dans un premier temps de traduire mes chaines en opcodes tout simplement en les copiant à l'EP d'un exe quelconque que j'ouvrais ensuite avec un debugger préalablement configuré pour breaker sur l'EP.
Malheureusement, ça donne lieu à des opcodes de type 'jb short' dont l'asm inline de VS ne veut pas entendre parler en raison du mot clé 'short'. J'ai bien essayé de l'utiliser en majuscules entre un '#undef SHORT' et un 'typedef short SHORT', mais rien à faire.
Donc pour l'instant j'ai opté pour une solution très proche de la tienne rt15, sauf que j'utilise des nop que je viens remplir directement dans le binaire via un petit tool fait vite fait pour l'occasion. Comme c'est un sous-projet du premier que je lance en évennement post-compilation ça n'est pas trop galère mais ça reste un peu obscure pour qui n'a pas suivi l'avancement du projet.
En tous cas ça fonctionne très bien pour l'instant et ça m'a fait gagner presque 1Ko de code pour six pauvres petites chaines.
Pour debugger je pointe directement sur les chaines en dur du sous-projet vu que je suis obligé de changer le prototype des fonctions de toutes façon (essayez un peu de debugger du naked sous VS ...).
@pop70>
Oui effectivement ça part généralement en section bss (quoiqu'il me semble que VS agit différemment, mais comme précisé je n'ai rien pour vérifier dans l'immédiat).
De toutes façons je n'ai pas été précis dans mon explication : en fait ça n'est pas que je ne peux pas utiliser la section data, c'est que je ne peux pas utiliser d'autre section que la code/text.
@BruNews>
Il faut bien évidemment adapter la méthode au besoin, mais en l’occurrence l'initialisation directe d'octets s'impose.
Concernant la crt, le code en est déjà totalement exempt car c'est une condition sine qua non.
@rt15>
Lors de mes recherches je suis tombé sur ce mot clé dans un post concernant les compilateurs Borland. Très enthousiasmé j'ai directement tenté de l'employer sous VS mais rien à faire. En revanche je constate que tu le préfixes d'un underscore, ce que je n'avais pas fait de mémoire.
S'il s'avère que ça fonctionne avec ton orthographe alors ça serait la réponse à ma question.
Je teste ça dès que possible et vous tiens informés.
Merci, et bon weekend.
++