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
Partager