<font style="font-family: arial,helvetica,sans-serif;" size="2">Hi,<br
/><br />i have downloaded the OmniOrb Package
&quot;omniORB-4.1.2-x86_win32-vs8.zip&quot; from Sourceforge.<br /><br
/>I'm new to CORBA so i've made a new Project in my Visual studio to
test it.<br /><br />The Problem is the i get the ErrorMessage <br /><br
/>&quot;Windows has triggered a breakpoint in OmniOrbServer.exe.<br
/>This may be due to a corruption of the heap, and indicates a <br />bug
in OmniOrbServer.exe or any of the DLLs it has loaded.<br />The output
window may have more diagnostic information&quot;<br /><br />I have made
things from Readme.win32.txt<br /><br />I set the Debug libs correct and
all runs well.<br /><br />Heres the Source-code :  <br /><br />Server
:<br /><br />// OmniOrbServer.cpp : Defines the entry point for the
console application.<br />//<br /><br />#include &quot;stdafx.h&quot;<br
/><br />#include &quot;Test.h&quot;<br />#include &lt;list&gt;<br
/>#include &lt;string&gt;<br /><br /><br />#define  NDEBUG<br /><br
/>#ifdef HAVE_STD<br />#  include &lt;iostream&gt;<br />   using
namespace std;<br />#else<br />#  include &lt;iostream&gt;<br
/>#endif<br /><br /> <br />using namespace HalloTest;<br />using
namespace CosNaming;<br />using namespace CORBA;<br />using namespace
PortableServer;<br /><br />class HelloServer : public
POA_HalloTest::Server<br />{<br />public:<br /><br />  inline
HelloServer() {}<br />  virtual ~HelloServer() {}<br />  inline virtual
char* getWorkflow ();<br />};<br /><br />using namespace std;<br /><br
/>char* HelloServer::getWorkflow ()<br />{<br />  String_var hallo =
(const char*) &quot;Hallo&quot;; <br />  return string_dup(hallo);<br
/>}<br /><br /><br /><br />int main(int argc, char** argv)<br />{<br
/>    <br />    try {<br />    <br />        printf(&quot;Initialize Orb
with Paramenters :\n&quot;);<br />       
printf(&quot;%s\n&quot;,argv[1]);<br />       
printf(&quot;%s\n&quot;,argv[2]);<br />    // create and initialize the
orb<br />    ORB_var orb = ORB_init(argc, argv);<br /><br />    // get
POA reference and activate POA<br />    POA_var poa =
POA::_narrow(orb-&gt;resolve_initial_references(&quot;RootPOA&quot;));<br
/>    poa-&gt;the_POAManager()-&gt;activate();<br /><br />    // create
server instance and register it with the ORB<br />    HelloServer
*helloServer = new HelloServer();<br /><br />    // get the root naming
context<br />    NamingContext_var namingContext =<br />       
NamingContext::_narrow(orb-&gt;resolve_initial_references(&quot;NameService&quot;));<br
/><br />    // bind the Object Reference in Naming<br />   
printf(&quot;Binding Service\n&quot;);<br />    Name path;<br />   
path.length(1);<br />    path[0].id   = (const char*) &quot;Hello&quot;;
// string copied<br />    path[0].kind = (const char*) &quot;&quot;;    
  // string copied<br />    namingContext-&gt;rebind(path,
helloServer-&gt;_this());<br />    printf(&quot;Starting
Server\n&quot;);<br />    printf(&quot;Server is running\n&quot;);<br
/>    orb-&gt;run();<br />  } catch(CORBA::SystemException&amp; ex) {<br
/>    cerr &lt;&lt; &quot;Caught CORBA::&quot; &lt;&lt; ex._name()
&lt;&lt; endl;<br />  } catch(CORBA::Exception&amp; ex) {<br />    cerr
&lt;&lt; &quot;Caught CORBA::Exception: &quot; &lt;&lt; ex._name()
&lt;&lt; endl;<br />  } catch(omniORB::fatalException&amp; fe) {<br
/>    cerr &lt;&lt; &quot;Caught omniORB::fatalException:&quot; &lt;&lt;
endl;<br />    cerr &lt;&lt; &quot;  file: &quot; &lt;&lt; fe.file()
&lt;&lt; endl;<br />    cerr &lt;&lt; &quot;  line: &quot; &lt;&lt;
fe.line() &lt;&lt; endl;<br />    cerr &lt;&lt; &quot;  mesg: &quot;
&lt;&lt; fe.errmsg() &lt;&lt; endl;<br />  }<br />  return 0;<br />}<br
/><br /><br />Client :<br /><br /><br />#include &quot;stdafx.h&quot;<br
/><br />#include &quot;Test.h&quot;<br /><br />#ifdef HAVE_STD<br /># 
include &lt;iostream&gt;<br />   using namespace std;<br />#else<br /># 
include &lt;iostream&gt;<br />#endif<br /><br /><br /><br />using
namespace HalloTest;<br />using namespace CosNaming;<br />using
namespace CORBA;<br /><br /><br />int main (int argc, char **argv) <br
/>{<br />  try {<br />      <br />    printf(&quot;Initialize Orb with
Paramenters :\n&quot;);<br />       
printf(&quot;%s\n&quot;,argv[1]);<br />       
printf(&quot;%s\n&quot;,argv[2]);<br />     <br />    // create and
initialize the ORB<br />    ORB_var orb = ORB_init(argc, argv);<br /><br
/>    // get the root naming context<br />    printf(&quot;Get Reference
to Nameservice\n&quot;);<br />    Object_var obj =
orb-&gt;resolve_initial_references(&quot;NameService&quot;);<br />   
NamingContext_var ncRef = NamingContext::_narrow(obj);<br />    <br
/>    // resolve the Object Reference in Naming<br />    CosNaming::Name
path;<br />    path.length(1);<br />    path[0].id   = (const char*)
&quot;Hello&quot;;<br />    path[0].kind = (const char*)
&quot;&quot;;<br />    printf(&quot;Get Reference to
Server-Method\n&quot;);<br />    Server_var helloRemote =
Server::_narrow(ncRef-&gt;resolve(path));<br />    printf(&quot;Calling
server-Method\n&quot;);<br />    String_var helloMessage =
helloRemote-&gt;getWorkflow();<br />    cout &lt;&lt; (const
char*)helloMessage &lt;&lt; endl;<br />    <br />   
gets(helloMessage);<br />    orb-&gt;destroy();<br />  }
catch(SystemException&amp; ex) {<br />    cerr &lt;&lt; &quot;Caught a
CORBA::&quot; &lt;&lt; ex._name() &lt;&lt; endl;<br />    <br />  }
catch(CORBA::Exception&amp; ex) {<br />    cerr &lt;&lt; &quot;Caught
CORBA::Exception: &quot; &lt;&lt; ex._name() &lt;&lt; endl;<br />    <br
/>  } catch(omniORB::fatalException&amp; fe) {<br />    cerr &lt;&lt;
&quot;Caught omniORB::fatalException:&quot; &lt;&lt; endl;<br />    cerr
&lt;&lt; &quot;  file: &quot; &lt;&lt; fe.file() &lt;&lt; endl;<br />   
cerr &lt;&lt; &quot;  line: &quot; &lt;&lt; fe.line() &lt;&lt; endl;<br
/>    cerr &lt;&lt; &quot;  mesg: &quot; &lt;&lt; fe.errmsg() &lt;&lt;
endl;<br />    <br />  }<br />  return 0;<br />}<br /><br /><br />The
Client calls the Server-Method getWorkflow() and then the Server crashes
and gives the Message &quot;Windows breakpoint...&quot; as described
above.<br /><br />This happends only in debug. If i run the exe in
DOS-Box all works well.<br /><br />Thanks for any help on this topic
;-)<br /><br />Greetings Jochen<br /></font>