[R] Les include avec les fichiers executables
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Les include avec les fichiers executables
Bonjour,
Tout d'abord, j'espère que ceci n'est pas un doublon, vu qu'après plusieurs recherches il m'est apparu que personne n'avait posé cette question avant...
Je suis en train de créer un jeu, et j'aimerais que les "#include" ne soit pas directement inclus une fois compilé.
Je m'explique: tant que le fichier est en "*.au3", on retrouve dans le script nos #include ;
mais dès que l'on compile notre fichiers, AutToExe les inclus directement ce qui fait que si l'on modifie un de ces fichiers inclus, il faut recompiler le programme principal.
Savez vous s'il existe une parade pour ceci ?
Merci d'avance,
Atab
Tout d'abord, j'espère que ceci n'est pas un doublon, vu qu'après plusieurs recherches il m'est apparu que personne n'avait posé cette question avant...
Je suis en train de créer un jeu, et j'aimerais que les "#include" ne soit pas directement inclus une fois compilé.
Je m'explique: tant que le fichier est en "*.au3", on retrouve dans le script nos #include ;
mais dès que l'on compile notre fichiers, AutToExe les inclus directement ce qui fait que si l'on modifie un de ces fichiers inclus, il faut recompiler le programme principal.
Savez vous s'il existe une parade pour ceci ?
Merci d'avance,
Atab
Modifié en dernier par Atab le mar. 05 août 2014 11:06, modifié 1 fois.
Re: [...] Les include avec les fichiers executables
Je pense que le meilleur moyen serait de créer un Launcher compilé qui exécute votre script principal. Ainsi vous aurez le launcher.exe, main.au3 et tous vos includes.au3
Re: [...] Les include avec les fichiers executables
Tout d'abord, merci pour ta réponse.
Cependant, après l'avoir essayée, (include "main.au3" dans le script du "launcher" pour continuer sur votre exemple) je me rends compte que finalement "include.au3" inclus dans "main.au3" se retrouve lui aussi inclus dans le launcher... ce qui me fait revenir au problème initial.
Du coup, j'ai pensé à executer le fichier autoit (run ou shellexecute), mais après differents test, on ne peut pas le faire sur un ordinateur ne possédant pas AutoIt.
Ainsi, s'il existe une autre possibilité, ce serait surement celle là, mais existe il une fonction (incluse ou non) qui permet de le faire?
Encore merci pour ta réponse,
Atab
Cependant, après l'avoir essayée, (include "main.au3" dans le script du "launcher" pour continuer sur votre exemple) je me rends compte que finalement "include.au3" inclus dans "main.au3" se retrouve lui aussi inclus dans le launcher... ce qui me fait revenir au problème initial.
Du coup, j'ai pensé à executer le fichier autoit (run ou shellexecute), mais après differents test, on ne peut pas le faire sur un ordinateur ne possédant pas AutoIt.
Ainsi, s'il existe une autre possibilité, ce serait surement celle là, mais existe il une fonction (incluse ou non) qui permet de le faire?
Encore merci pour ta réponse,
Atab
Re: [...] Les include avec les fichiers executables
Tu peux te servir de ton propre exécutable pour exécuter du code et/ou un script AutoIt, ceci sans avoir à installer quoique ce soit sur le PC.
Regarde dans la doc : Using AutoIt / Command Line Parameters, le paramètre /AutoIt3ExecuteScript ne permet de lancer un script.
Ce pourrait convenir ?
Regarde dans la doc : Using AutoIt / Command Line Parameters, le paramètre /AutoIt3ExecuteScript ne permet de lancer un script.
Ce pourrait convenir ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [...] Les include avec les fichiers executables
malheureusement, j'ai vu que dans tout les exemples utilisant /AutoIt3ExecuteScript étaient précédés de @AutoitExe (qui étant le chemin de "Auoit3.exe", il faut donc qu'il soit installé) ... et quand j'essaye un autre chemin, cela ne fonctionne pas.
Merci tout de même pour l'idée des CommandLine
je vais essayer de chercher dans cette direction.
Merci tout de même pour l'idée des CommandLine
Re: [...] Les include avec les fichiers executables
Non, pas besoin qu'il soit installé.
Quand ton script est compilé, @AutoitExe te retourne le chemin de ton propre exécutable.
Quand ton script est compilé, @AutoitExe te retourne le chemin de ton propre exécutable.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [...] Les include avec les fichiers executables
Pour revenir à mon histoire de launcher, je pensais plutôt à l'utilisation de Execute() dans le launcher vu que celui-ci compilé contient Autoit3.exe mais après quelques tests ca serait beaucoup plus compliqué que prévu et pas très très bon 
Sinon, tu peux toujours ajouter autoit3.exe dans ton dossier et le partager avec tes sources également ! En ajoutant uniquement les includes necessaires.
Sinon, tu peux toujours ajouter autoit3.exe dans ton dossier et le partager avec tes sources également ! En ajoutant uniquement les includes necessaires.
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Les include avec les fichiers executables
Bonsoir Atab.
Pouvez-vous nous expliquer ce que vont contenir les fichiers #Include que vous ne voulez pas compiler dans le script principal ?
Réflexion n°1 : Pourquoi ne pas "distribuer" votre application sous forme non compilé (Le programme AutoIt3.exe + vos fichiers au3) ?
Cela vous permettrait de mettre à jour plus facilement sans prise de tête. ^^
Réflexion n°2 : Si vous avez peur que l'utilisateur admire votre code, vous pouvez l'obfusquer afin de rendre sa lecteur assez confuse.
Réflexion n°3 : Si vos #Include ne contiennent que des fonctions, pourquoi ne pas simplement faire une gestion d'entrée/sortie de résultat par le biais de paramètres donné à un Exe et un retour console, puisque une fonction est sensée avoir ou pas un ou plusieurs paramètres et doit retourner un résultat ! Donc vous pourriez donner une commande ou un traitement à faire à un exe compilé selon vos besoins.
Réflexion n°3 : Pourquoi ne pas gérer le code externe qui doit être mis à jour par une dll faite maison ?
Réflexion n°4 : Vous pourriez aussi faire une gestion de "re-compilation automatique" en cas de mise à jour d'une partie du code. C'est un peux plus lourd car il faut s'embarquer le ou les stub ainsi que l'Aut2exe correspondant, mais l'exe serait recompiler avec les #Includes qui vont bien et ce serait presque transparent.
Pouvez-vous nous expliquer ce que vont contenir les fichiers #Include que vous ne voulez pas compiler dans le script principal ?
Réflexion n°1 : Pourquoi ne pas "distribuer" votre application sous forme non compilé (Le programme AutoIt3.exe + vos fichiers au3) ?
Cela vous permettrait de mettre à jour plus facilement sans prise de tête. ^^
Réflexion n°2 : Si vous avez peur que l'utilisateur admire votre code, vous pouvez l'obfusquer afin de rendre sa lecteur assez confuse.
Réflexion n°3 : Si vos #Include ne contiennent que des fonctions, pourquoi ne pas simplement faire une gestion d'entrée/sortie de résultat par le biais de paramètres donné à un Exe et un retour console, puisque une fonction est sensée avoir ou pas un ou plusieurs paramètres et doit retourner un résultat ! Donc vous pourriez donner une commande ou un traitement à faire à un exe compilé selon vos besoins.
Réflexion n°3 : Pourquoi ne pas gérer le code externe qui doit être mis à jour par une dll faite maison ?
Réflexion n°4 : Vous pourriez aussi faire une gestion de "re-compilation automatique" en cas de mise à jour d'une partie du code. C'est un peux plus lourd car il faut s'embarquer le ou les stub ainsi que l'Aut2exe correspondant, mais l'exe serait recompiler avec les #Includes qui vont bien et ce serait presque transparent.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Les include avec les fichiers executables
Que ce soit clair : une fois compilé, on ne peut pas faire un #Include d'un script AutoIt.
Pour moi, les possibilités d'appeler du code externe, sont :
- Execute() : ne fonctionne que pour une ligne de code
- Utiliser Run(@AutoItExe & ' /AutoIt3ExecuteLine ....") : ne fonctionne que pour une ligne de code et s'exécute à part (les variables ne sont pas communes)
- Utiliser Run(@AutoItExe & ' /AutoIt3ExecuteScript ....") : fonctionne pour un script complet, mais s'exécute également à part
C'est uniquement en vue de tests du jeu ?
Pour moi, les possibilités d'appeler du code externe, sont :
- Execute() : ne fonctionne que pour une ligne de code
- Utiliser Run(@AutoItExe & ' /AutoIt3ExecuteLine ....") : ne fonctionne que pour une ligne de code et s'exécute à part (les variables ne sont pas communes)
- Utiliser Run(@AutoItExe & ' /AutoIt3ExecuteScript ....") : fonctionne pour un script complet, mais s'exécute également à part
C'est uniquement en vue de tests du jeu ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Les include avec les fichiers executables
Merci pour votre aide,
Je crois bien que je vais me rabattre sur votre première proposition Tlem c'est effectivement le plus simple/rapide
.
(pourquoi j'y ai pas pensé
)
Ce sujet est donc résolu. Merci encore a vous
Atab
Je crois bien que je vais me rabattre sur votre première proposition Tlem c'est effectivement le plus simple/rapide
(pourquoi j'y ai pas pensé
Ce sujet est donc résolu. Merci encore a vous
Atab
Re: [R] Les include avec les fichiers executables
Attention aux includes natifs ! Il faudra qu'il fassent partie du paquet
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [R] Les include avec les fichiers executables
Ils en faisait déjà partie avant
car je ne savais pas que le compilage incluait directement dans le script..
Donc pas de soucis de ce côté
Merci quand même
Donc pas de soucis de ce côté
Merci quand même



