Module exécutable

peon.master

Membre actif
22 Avril 2002
144
5
44
Vernayaz
Hello!

Comment faire pour pouvoir utiliser des fichiers contenant du code compilé (par exemple une classe) dans un programme et les exécuter?

Par exemple, il y a les modules screensaver de os X...
 
Je ne sais pas si c'est ce dont tu as vraiment besoin, mais ceci permet de lancer une application (ici TextEdit) depuis ton appli :

NSWorkspace *workspace=[NSWorkspace sharedWorkspace];
[workspace launchApplication:@"~/Applications/TextEdit.App"];

La classe NSBundle propose des fonctions intéressantes, permettant de retrouver les chemins de modules, plugins dans un bundle, qui je pense doivent pouvoir être exécutés avec [NSWorkspace launchApplication]



 
Je pense que c'est faisable comme ca mais ca risque de compliquer la chose et d'être trop lent à la réaction.

J'ai une classe mère dont les classes qui en héritent devraient etre dans des fichiers séparés. C'est un peu ce qu'on a avec les screensaver.

J'imagine que je dois créer un framework (toujours en comparaison avec ScreenSaver.framework)
 
peon.master a dit:
Hello!

Comment faire pour pouvoir utiliser des fichiers contenant du code compilé (par exemple une classe) dans un programme et les exécuter?

Par exemple, il y a les modules screensaver de os X...

Si tes modules sont dans un framework, tu place ton framework dans /Library/Frameworks

Si c'est des modules en C, tu les mets où tu veux mais tu spécifie l'endroit dans Project Builder. Pour qu'il aille les chercher pour la compile.

N'oublie pas qu'on est dans un contexte de langage C donc rien de mystérieux.
 
NSTask *t;
t = [[NSTask alloc] init];
[t setLaunchPath:@"monCheminDAcces"];
[t setArguments:[NSArray arrayWithObject:arg1, arg2, arg3, nil]];
[t launch];
[t release];

ya même moyen de récupérer la sortie standard de ton exécutable grace à un pipe.
Si l'executable est dans ton bundle, le chemin d'accès doit être du type : ../Resources/monExecutable