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

  FORUM HardWare.fr
  Programmation
  C

  [C Windows] Signature d'une méthode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C Windows] Signature d'une méthode

n°458386
Cherrytree
cn=?
Posté le 15-07-2003 à 14:54:45  profilanswer
 

J'ai remarqué que certaines méthodes avaient une signature particulière.

Citation :

BOOL CRPE_API PEOutputToPrinter (short printJob, short nCopies );


Qu'est ce que cela signifie ?


---------------
Le site de ma maman
mood
Publicité
Posté le 15-07-2003 à 14:54:45  profilanswer
 

n°458394
chrisbk
-
Posté le 15-07-2003 à 15:04:52  profilanswer
 

Ben y'a pas grand chose de particulier la...
 
Pe fais tu reference au CRPE_API qui decrit la convention d'appel de fonction (ordre d'empilement des parametres, menage de la pile a la charge de l'appelant ou de l'appelé etc etc)
ou y'a encore autre chose ?

n°458400
Cherrytree
cn=?
Posté le 15-07-2003 à 15:17:32  profilanswer
 

Il s'agit bien du mot clé CRPE_API, je suppose que c'est un mot clé propre à l'outil que j'utilise : Crystal Reports.
 
Comment s'appelle ce genre de mot clés, qui s'intercale entre type de retour et nom de la fonction ?
 
Est-ce obligatoire ? Dois-je m'en préoccuper ?


---------------
Le site de ma maman
n°458405
chrisbk
-
Posté le 15-07-2003 à 15:22:30  profilanswer
 

Cherrytree a écrit :

Il s'agit bien du mot clé CRPE_API, je suppose que c'est un mot clé propre à l'outil que j'utilise : Crystal Reports.
 
Comment s'appelle ce genre de mot clés, qui s'intercale entre type de retour et nom de la fonction ?
 
Est-ce obligatoire ? Dois-je m'en préoccuper ?


 
A ma connaissance il y a trois convention d'appels :
 
cdecl
stdcall
fastcall
(thiscall mis de coté)
 
Ton CRPE_API est un #define d'un de ces trois la (cdecl ou stdcall a mon idee).
 
Maintenant, pour toi, qu'est ce que ca change ? rien. C'est la tambouille interne de CR, a priori ils ont mis ca pour etre bien sur que les fonctions utiliseront la convention d'appels qu'ils ont choisi plutot que celle que le compilo utilise par defaut.
 
Par contre, si jamais une des fonctions de Crystal report (que je ne connais pas du tout) te demande en parametre un pointeur sur une fonction callback,  prends bien garde a lui donner une fonction utilisant la meme convention d'appel que ce qu'il attends.
 
(le nom de ce genre de mot cle m'echappe completement)


Message édité par chrisbk le 15-07-2003 à 15:23:39
n°458410
Cherrytree
cn=?
Posté le 15-07-2003 à 15:25:52  profilanswer
 

Merci beaucoup pour ta peine et mon information.


---------------
Le site de ma maman
n°458424
Ace17
Posté le 15-07-2003 à 15:43:32  profilanswer
 

chrisbk a écrit :


A ma connaissance il y a trois convention d'appels :
 
cdecl
stdcall
fastcall
(thiscall mis de coté)


 
C'est quoi les différences, excepté l'ordre dans lequel on empile les parametres?

n°458428
chrisbk
-
Posté le 15-07-2003 à 15:48:04  profilanswer
 

Ace17 a écrit :


 
C'est quoi les différences, excepté l'ordre dans lequel on empile les parametres?


 
cdecl : param empile de droite a gauche, menage de la pile a la charge de l'appelant
 
stdcall : param empile de droite a gauche, menage de la pile a la charge de l'appelé
 
fastcall : passage autant que possible via registre, le reste sur la pile, menage a la charge de roger (en fait je sais pu :D)
 
Il ne me semble pas qu'il y ait des differences au niveau des retours de fonction (entier : AL/AX/EAX, voir EDX:EAX, reel : st(0), struct : pointeur "invisible" filé en entrée sur la pile et EAX)


Message édité par chrisbk le 15-07-2003 à 15:49:01
n°458602
HelloWorld
Salut tout le monde!
Posté le 15-07-2003 à 18:10:29  profilanswer
 

Moi je pencherais plutôt pour une macro d'import / export de fonctions. Un truc du genre :

Code :
  1. #ifdef CREATE_CRPE_DLL
  2.     #define CRPE_API __declspec( dllexport )
  3. #else
  4.     #define CRPE_API __declspec( dllimport )
  5. #endif


 
c'est un header fourni avec une dll ?
Le plus simple, ca reste quand meme de regarder comment est défini CRPE_API  ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°458856
chrisbk
-
Posté le 15-07-2003 à 22:10:47  profilanswer
 

ah tiens oui j'y avais meme pas pensé, balot que je suis

n°459347
Cherrytree
cn=?
Posté le 16-07-2003 à 14:27:05  profilanswer
 

HelloWorld a écrit :

Moi je pencherais plutôt pour une macro d'import / export de fonctions. Un truc du genre :

Code :
  1. #ifdef CREATE_CRPE_DLL
  2.     #define CRPE_API __declspec( dllexport )
  3. #else
  4.     #define CRPE_API __declspec( dllimport )
  5. #endif


 
c'est un header fourni avec une dll ?
Le plus simple, ca reste quand meme de regarder comment est défini CRPE_API  ...
 


Il y a une DLL : CRPE32.DLL, mais que puis-je apprendre à son sujet ? C'est compilé, non ?


---------------
Le site de ma maman
mood
Publicité
Posté le 16-07-2003 à 14:27:05  profilanswer
 

n°459357
chrisbk
-
Posté le 16-07-2003 à 14:29:48  profilanswer
 

Cherrytree a écrit :


Il y a une DLL : CRPE32.DLL, mais que puis-je apprendre à son sujet ? C'est compilé, non ?


 
faudrait que tu creuses un peu pour trouver ce quoi correspond CRPE_API.
 
Soit c'est un truc comme j'ai decris plus haut, soit c une explication a la helloworld (qui signifie que tu t'en fous encore plus, c juste pour dire au compilo que la fonction est importée d'une dll)

n°459420
HelloWorld
Salut tout le monde!
Posté le 16-07-2003 à 15:12:34  profilanswer
 

Donc tu as une dll ...
Le fichier .h est là pour te permettre de l'utiliser.
__declspec( dllimport ) ça indique au compilo que les fonctions elles sont contenues dans cette dll. Il se charge de générer le code qu'il faut pour s'y lier.
+ d'infos ici :
http://www.codeproject.com/dll/dllexport.asp


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

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

  [C Windows] Signature d'une méthode

 

Sujets relatifs
Algo de Hashage/SignatureCherche doc sur MOC (methode organisationnel de communication)
[Delphi] Définir une méthode dans un unité différente de la déclaratio[Méthode] Décompte de résultats
GTK pour windows, ça existe ?Comment recupere t on la liste des processus sous windows (autre prob)
[Visual Studio] Empêcher debuggage sous windows !?QQ est doué sur tout ce qui est methode merise ?
LookandFeel windows ? marche pasbesoin de conseils pour dev C++/windows
Plus de sujets relatifs à : [C Windows] Signature d'une méthode


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