IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CORBA Discussion :

Function matching problem


Sujet :

CORBA

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Function matching problem
    Bonjour,

    Voici mon probleme, j'essaye de compiler un programme (code c++) sous MAC OS X 10.6. Ce programme utilise en autre corba (omniorb4.1.4) et j'ai une erreur de compilation qui je pense est due a corba. Pour information le programme fonctionne deja correctement sur linux et windows.


    Voici un extrait de code qui correspond a la partie concernee par l'erreur:

    Extrait de UISupervisorInterface.cpp:
    UISupervisorInterface::Result
    UISupervisorInterface::getLogMessagesSinceSeqNum(long seqNumber,
    AbstractLogStore::LogMessageCont* out,
    long* newSeqNumber)
    {
    try{
    long newSeq;
    SeqLogMessageC_var smc =supervisor_->GetMessagesSinceSeqNumber(seqNumber, newSeq);
    //In this project we consider it preferable to use pointers rather than references for output parameters
    ...

    UISupervisorInterface::Result
    UISupervisorInterface::getLogMessagesSinceTimestamp(TimestampType timestamp,
    AbstractLogStore::LogMessageCont* out,
    long* newSeqNumber)
    {
    try{
    long newSeq;
    SeqLogMessageC_var smc =supervisor_->GetMessagesSinceTimestamp(timestamp, newSeq);
    //In this project we consider it preferable to use pointers rather than references for output parameters
    //(avoids confusion)
    ...
    UISupervisorInterface::Result
    UISupervisorInterface::getActiveLogMessages(AbstractLogStore::LogMessageCont* out,
    long* newSeqNumber)
    {
    try{
    long newSeq;
    SeqLogMessageC_var smc = supervisor_->GetActiveMessages(newSeq);
    //In this project we consider it preferable to use pointers rather than references for output parameters
    //(avoids confusion)


    Extrait de odin_if.idl (qui est le stub a partir du quel est genere odin_if.h):
    SeqLogMessageC GetMessagesSinceTimestamp(in TimestampType ts,
    out long newSeqNumber);

    SeqLogMessageC GetMessagesSinceSeqNumber(in long seqNumber,
    out long newSeqNumber);

    SeqLogMessageC GetActiveMessages(out long newSeqNumber);




    Erreurs lors de la compilation:

    ui/UISupervisorInterface.cpp: In member function ‘UISupervisorInterface::Result UISupervisorInterface::getLogMessagesSinceSeqNum(long int, std::vector<LogMessage, std::allocator<LogMessage> >*, long int*)’:
    ui/UISupervisorInterface.cpp:158: error: no matching function for call to ‘_objref_Supervisor::GetMessagesSinceSeqNumber(long int&, long int&)’
    stubs/odin_if.h:2086: note: candidates are: SeqLogMessageC* _objref_Supervisor::GetMessagesSinceSeqNumber(CORBA::Long, CORBA::Long&)

    ui/UISupervisorInterface.cpp: In member function ‘UISupervisorInterface::Result UISupervisorInterface::getLogMessagesSinceTimestamp(TimestampType, std::vector<LogMessage, std::allocator<LogMessage> >*, long int*)’:
    ui/UISupervisorInterface.cpp:178: error: no matching function for call to ‘_objref_Supervisor::GetMessagesSinceTimestamp(TimestampType&, long int&)’
    stubs/odin_if.h:2085: note: candidates are: SeqLogMessageC* _objref_Supervisor::GetMessagesSinceTimestamp(TimestampType&, CORBA::Long&)

    ui/UISupervisorInterface.cpp: In member function ‘UISupervisorInterface::Result UISupervisorInterface::getActiveLogMessages(std::vector<LogMessage, std::allocator<LogMessage> >*, long int*)’:
    ui/UISupervisorInterface.cpp:197: error: no matching function for call to ‘_objref_Supervisor::GetActiveMessages(long int&)’
    stubs/odin_if.h:2087: note: candidates are: SeqLogMessageC* _objref_Supervisor::GetActiveMessages(CORBA::Long&)




    Je répète que le même code compile sous windows et linux... Merci d'avance a ceux qui donnerons leur avis :-)

    synopia

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 219
    Points : 302
    Points
    302
    Par défaut
    Je répète que le même code compile sous windows et linux...
    En 32 bits ou 64 bits ? Avec le même compilo ?

    no matching function for call to ‘_objref_Supervisor::GetActiveMessages(long int&)’
    candidates are: SeqLogMessageC* objref_Supervisor::GetActiveMessages(CORBA::Long&)
    Ton compilo considère que long int et CORBA::Long ne sont pas du même type.
    Un CORBA::Long a toujours 32 bits.
    Je pense que sous windows et linux tu étais en 32 bits, et un long int a bien 32 bits dans ces 2 cas.
    En revanche, sous Mac OS, tu dois être en 64 bits, et dans ce cas le long int a 64 bits, et ne peut donc plus correspondre à un CORBA::Long.

    Conclusion:
    Toujours utiliser les types définit par CORBA pour les passer à CORBA.
    Dans ton cas, remplace tout les "long newSeq" par des "CORBA::Long newSeq".

Discussions similaires

  1. Function.Match en fonction d'un textbox
    Par Dream Master dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2007, 14h09
  2. No function matches the given name and argument types.
    Par Davboc dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/05/2007, 11h25
  3. Probleme avec "match against"
    Par biggione dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2007, 14h57
  4. onclick+ function javascript=probleme
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/10/2006, 12h54
  5. Probleme de "matching"
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo