Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1484 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Debutant]Lancer un prog C avec paramètres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Debutant]Lancer un prog C avec paramètres

n°1183975
fguitch
Posté le 25-08-2005 à 10:38:39  profilanswer
 

Voila je vais essayer de faire simple parceque c'est compliqué  
J'ai un header (h1), j'ai un programme C (c1) et j'ai une DLL (d1)
c1 utilise d1 et h1
Je n'ai pas les sources de la DLL mais j'ai ses méthodes et ses paramètres.
Je souhaite à partir d'un programme C (c2) que je fait moi meme, appeler c1 qui doit me retourner un tableau de double que je veux ensuite utiliser dans c2.
Le problème c'est que je n'y connait absolument rien au C et je n'ai aucune idée de comment faire...si quelqun peut me donner un exemple...merci

mood
Publicité
Posté le 25-08-2005 à 10:38:39  profilanswer
 

n°1183984
Elmoricq
Modérateur
Posté le 25-08-2005 à 10:46:25  profilanswer
 

Et comment c1 te retourne le tableau de doubles ? Sur la sortie standard ?  :heink:  
 
Soit tu appelles un programme externe avec system() ou l'une des fonctions exec() qui va bien, et tu épluches ce que sort le dit programme...
 
... soit tu appelles directement les fonctions de la DLL qui te sont utiles. C'est le but des bibliothèques partagées que d'être utilisées par n programmes. ;)


Message édité par Elmoricq le 25-08-2005 à 10:47:14
n°1184028
fguitch
Posté le 25-08-2005 à 11:12:45  profilanswer
 

Elmoricq a écrit :

Et comment c1 te retourne le tableau de doubles ? Sur la sortie standard ?  :heink:  
 
Soit tu appelles un programme externe avec system() ou l'une des fonctions exec() qui va bien, et tu épluches ce que sort le dit programme...
 
... soit tu appelles directement les fonctions de la DLL qui te sont utiles. C'est le but des bibliothèques partagées que d'être utilisées par n programmes. ;)


 
bah c1 pour le moment me retourne rien mais je suppose qu'il me suffit de claquer un ptit "return" et ça fonctionne...
heu exemple pour system je fait : system(exemple.c(param1,param2)) ??
Appeler directement les fonctions de la DLL qui me sont utiles ça m'intéresse, tu as un exemple de prog qui fait ça ?
Parceque le prob c'est qu'à l'origine je suis en java et avec JNI je fais du C seulement quand je compile ce qu'il faut il crée une DLL un .h associé au programme C contenu dans mon code java, on peut donc associé 2 dll à un seul code C ??
Si oui un exemple Svp jsui vraiment en lutte!

n°1184029
blackgodde​ss
vive le troll !
Posté le 25-08-2005 à 11:15:17  profilanswer
 

fguitch a écrit :

bah c1 pour le moment me retourne rien mais je suppose qu'il me suffit de claquer un ptit "return" et ça fonctionne...


 
int main() { return un_int; }


---------------
-( BlackGoddess )-
n°1184039
Elmoricq
Modérateur
Posté le 25-08-2005 à 11:22:59  profilanswer
 

fguitch a écrit :

bah c1 pour le moment me retourne rien mais je suppose qu'il me suffit de claquer un ptit "return" et ça fonctionne...


 
return d'un tableau de pointeur sur quel flux ?  
Pas possible, soit tu passes par un fichier, soit tu passes par la sortie standard, mais tu ne peux pas passer des variables ou des bouts de mémoire d'un programme à un autre. Enfin pas comme ça en tout cas.
 

Citation :

heu exemple pour system je fait : system(exemple.c(param1,param2)) ??


 
system() :
 

    #include <stdlib.h>
 
     int system(const char *string);


 
Il te faut donc une chaîne de caractères en paramètre de system(). En gros cette chaîne doit contenir l'appel au programme externe exactement de la même façon que celle que tu utiliserais pour le lancer en ligne de commande.
 
Exemple : "c param1 param2"
 
 

Citation :

Appeler directement les fonctions de la DLL qui me sont utiles ça m'intéresse, tu as un exemple de prog qui fait ça ?


 
Ben... ton premier programme c, celui que tu appelles c1 ?
 
 

Citation :

on peut donc associé 2 dll à un seul code C ??


 
Autant que tu veux, une DLL c'est une bibliothèque de fonctions partagées.
 

Citation :

Si oui un exemple Svp jsui vraiment en lutte!


 
Tu utilises #include pour inclure le fichier .h correspondant à la DLL que tu souhaites utiliser, et tu inclues la DLL dans le projet (j'imagine que tu utilises VC ou un truc du genre ?)

n°1184073
fguitch
Posté le 25-08-2005 à 11:49:30  profilanswer
 

Bon pour éviter de me prendre la tete avec 2 programmes C, si je peux utiliser tout dans un seul programme ça me va très bien !
Le principe de JNI c'est de créer une méthode dite "native"
ensuite on génère le fichier d'entete des fonctions h1 avec des noms à la java
et ensuite on fait le DLL avec les fonctions. dll1
Donc tu crois que c'est jouable d'utiliser la dll qui existe déja (dll2) ?

n°1184392
matafan
Posté le 25-08-2005 à 16:28:13  profilanswer
 

Il doit bien avoir de la memoire partagee sous win, non ?

n°1184999
blackgodde​ss
vive le troll !
Posté le 26-08-2005 à 11:25:18  profilanswer
 

sous win me semble que le code des dlls n'est chargée qu'une fois, par contre les espaces de données sont privés au processus. On peut aussi déclarer des shared sections (donc un espace de données partagé)


Message édité par blackgoddess le 26-08-2005 à 11:25:49

---------------
-( BlackGoddess )-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Debutant]Lancer un prog C avec paramètres

 

Sujets relatifs
parametres à inserer dans BDD ... ?[débutant]JTable : colonnes fixes
Prog qui disparait de la liste des Applications[PHP] Au sujet de la prog d'un CMS/ Web blog
[Débutant] Object[] récalcitrant ?[CSS débutant] Comme lier une feuille CSS à un tableau dans page HTML?
Lancer une application .exe à partir d'un browser via JAVAModifier un JPanel (ou Frame) pendant l'exécution d'un prog
[swing][debutant]pb de JPanelComment on converti un prog flash en java pour mettre sur un mobile?
Plus de sujets relatifs à : [Debutant]Lancer un prog C avec paramètres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR