Comment declare t'on des variables externes??

Comment declare t'on des variables externes?? - C++ - Programmation

Marsh Posté le 22-05-2003 à 12:12:26    

En fait je voudrais lancer des fonctions qui ne sont pas utilisées dans mon projet de base "simpledemo" (elles font parties d'un autre projet "win32" )
Donc ce que je veux faire, c'est inclure les fichiers (*.c et *.h) nécessaire au fonctionnement de "win32" dans mon projet "simpledemo.
Dès lors, je veux pouvoir declarer des variables globales qui peuvent être aussi bien utilisée dans simpledemo que dans les fonctions issues de "win32".
Et je veux aussi pouvoir lancer des fonctions de "win32" dans "simpledemo"

Reply

Marsh Posté le 22-05-2003 à 12:12:26   

Reply

Marsh Posté le 22-05-2003 à 12:44:15    

dans un fichier :
 

Code :
  1. char *mavar = "valeur d'init";


 
dans l'autre fichier :
 

Code :
  1. extern char *mavar;



---------------
last.fm
Reply

Marsh Posté le 22-05-2003 à 12:45:01    

theShOcKwAvE a écrit :

dans un fichier :
 

Code :
  1. char *mavar = "valeur d'init";


 
dans l'autre fichier :
 

Code :
  1. extern char *mavar;


 


 
n'empeche ce genre de truc c quand meme cracra [:totoz]

Reply

Marsh Posté le 22-05-2003 à 12:56:12    

chrisbk a écrit :


 
n'empeche ce genre de truc c quand meme cracra [:totoz]


 
ben ouais, mais si il veut du extern ....


---------------
last.fm
Reply

Marsh Posté le 22-05-2003 à 12:57:47    

theShOcKwAvE a écrit :


 
ben ouais, mais si il veut du extern ....


qqpart j'ai peur de mal comprendre ce qu'il veut, a mon avis il va avoir droit a une brochette d'erreur de link

Reply

Marsh Posté le 22-05-2003 à 13:01:42    

chrisbk a écrit :


qqpart j'ai peur de mal comprendre ce qu'il veut, a mon avis il va avoir droit a une brochette d'erreur de link


 
(j'avoue que je ne suis pas sur non plus d'avoir bien saisi sa requête ... :D)


---------------
last.fm
Reply

Marsh Posté le 22-05-2003 à 16:34:56    

Bon en fait, c'est pas vraiment ça;
Ce que je dois faire, c'est appeller une fonction ecrite en C (fonction contenue dans "win32" )
dans "simpledemo";
on m'a donc dit d'ecrire la syntaxe suivante :
extern "C" _declspec ma_fonction
mais ca ne fonctionne pas, est ce que l'appel est bon???
 
H   H EEEE  L    PPPP
HHHHH EE    L    PPPP
H   H EEEE  LLLL P

Reply

Marsh Posté le 22-05-2003 à 16:36:55    

"ca marche pas"
 
quand je lis ca la seule reponse qui me vient a l'esprit c'est "c'est balot".
 
 
detaille
donne ce que tu as fait
donne le msg d'erreur
 

Reply

Marsh Posté le 22-05-2003 à 16:39:51    

je vois pas en quoi c'est cracra

Reply

Marsh Posté le 22-05-2003 à 16:41:44    

++Taz a écrit :

je vois pas en quoi c'est cracra

Les variables globales cai mal


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-05-2003 à 16:41:44   

Reply

Marsh Posté le 22-05-2003 à 16:56:51    

sbbtn a écrit :

Bon en fait, c'est pas vraiment ça;
Ce que je dois faire, c'est appeller une fonction ecrite en C (fonction contenue dans "win32" )
dans "simpledemo";
on m'a donc dit d'ecrire la syntaxe suivante :
extern "C" _declspec ma_fonction
mais ca ne fonctionne pas, est ce que l'appel est bon???
 
H   H EEEE  L    PPPP
HHHHH EE    L    PPPP
H   H EEEE  LLLL P


 

Code :
  1. extern "C" {
  2.   int mafonction( int a, float b );
  3. }


te permettra d'utiliser une fonction écrite en C, dans un fichier .c ou dans une lib compilée en C, le tout depuis un programme C++, si je ne me trompe pas ... C'est peut-être simplement ca que tu recherches ...
 
_declspec ca prend pas un argument ?
au pire, c'est du __cdecl* non ?


---------------
last.fm
Reply

Marsh Posté le 22-05-2003 à 16:57:31    

Citation :

_declspec ca prend pas un argument ?


 
chi, chai vrai

Reply

Marsh Posté le 26-05-2003 à 00:30:19    

theShOcKwAvE a écrit :


 

Code :
  1. extern "C" {
  2.   int mafonction( int a, float b );
  3. }


te permettra d'utiliser une fonction écrite en C, dans un fichier .c ou dans une lib compilée en C, le tout depuis un programme C++, si je ne me trompe pas ... C'est peut-être simplement ca que tu recherches ...
 
_declspec ca prend pas un argument ?
au pire, c'est du __cdecl* non ?
 


 
 
Ca aurait pû etre ça, mais non;
J'ai une erreur de LINK 2072 (sou vc6++)...
Et sous Visual.net, j'ai une belle grosse brochette d'erreur de LINK encore plus grosse, et encore plus baveuse..
Enfin bref, pour ce qui est du post de code, je veux bien, mais ca changera pas grand chose au probleme, vu que les fonctions qui ont été ecrite en C, font appel à d'autres librairies ecrites en C, qui elle meme font appel à d'autres librairies....
Le gros bordel quoi.
Alors si quelqu'un a une idée de la facon dont je pourrai utiliser ma fonction ecrite  en C dans mon prog C++

Reply

Marsh Posté le 26-05-2003 à 01:28:20    

normalement, c'est comme ca que tu dois déclarer ta fonction dans ton .h ... Si le header que tu inclus n'as pas les extern "C", alors tu devras les rajouter car les compilateurs C++ utilisent une autre décoration pour les noms de fonctions que les compilo C, et de déclarer tes entêtes de fonctions en extern "C" permet de spécifier au compilo la manière d'appeler la fonction (__cdecl* quoi) et lui donne aussi son nom décoré à l'intérieur du fichier .lib. Ensuite, pour les appels d'une lib à une autre, tu n'as pas à t'en soucier, puisque les noms dans les fichiers.lib sont déjà décorés correctement !
 
Si malgré tout tu as encore des pbs, c'est peut-être que ton erreur est ailleurs ...


---------------
last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed