<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<tt>Hi Duncan,<br>
</tt>
<blockquote cite="midE1FEBlP-0001mb-ES@apasphere.com" type="cite">
  <blockquote type="cite">
    <pre wrap="">I'm getting an error from the 4.0.7 win32 omniidl compiler. It seems
to be having a problem with an interface that is forward declared
within a separate source file that is included within an IDL module {
}. The error states that the forward declaration is in module "",
whereas the interface definition is in module "Mod". In reality, both
are declared within the same module. The identical construct (same
source code) works fine in omniORB 2.80.
    </pre>
  </blockquote>
  <pre wrap=""><!---->It's not a bug in omniidl -- your IDL is wrong, I'm afraid. Notice that
omniidl says:

c_core.idl:18: In declaration of interface 'Consumer', repository id
prefix 'Mod' differs from that of forward declaration
c_base.idl:15:  ('Consumer' forward declared here with prefix '')

It's not complaining about the module name, it's complaining about the
"repository id prefix". Read section 10.6 of the CORBA 2.6 spec to see
the rules about how repository ids are generated. In particular, notice
this example on page 10-47:
  </pre>
</blockquote>
<tt>Silly me - knowing that omniORB didn't have an interface
repository, it never even occurred to me that omniORB would complain
about such a thing. It's a good thing that *<i>you</i>* have read
section 10.6 of the CORBA spec; I would hope never to have to dig down
that far to get a CORBA application working.<br>
<br>
The convoluted #include mechanism is a leftover from limitations with
omniORB 2.80 (or perhaps it was limitations with some compilers
supported by oO 2.80 - maybe this even goes back to 2.60) with modules
not being able to be reopened.<br>
<br>
Thanks for your insightful help.<br>
<br>
Regards,<br>
Dietmar<br>
</tt>
</body>
</html>