⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cb200005rs_f.asp.htm

📁 C++builder学习资料C++builder
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  </td>    

  <td width=56 valign=top style='width:42.25pt;border-top:none;border-left:    

  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> boolean</p>    

  </td>    

  <td width=64 valign=top style='width:47.75pt;border-top:none;border-left:    

  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> boolean&amp; </p>    

  </td>    

  <td width=61 valign=top style='width:45.6pt;border-top:none;border-left:none;    

  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> boolean&amp; </p>    

  </td>    

  <td width=59 valign=top style='width:44.4pt;border-top:none;border-left:none;    

  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> boolean</p>    

  </td>    

 </tr>    

 <tr>    

  <td width=94 valign=top style='width:70.4pt;border:solid windowtext .5pt;    

  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> char</p>    

  </td>    

  <td width=56 valign=top style='width:42.25pt;border-top:none;border-left:    

  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> char</p>    

  </td>    

  <td width=64 valign=top style='width:47.75pt;border-top:none;border-left:    

  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> char&amp; </p>    

  </td>    

  <td width=61 valign=top style='width:45.6pt;border-top:none;border-left:none;    

  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> char&amp; </p>    

  </td>    

  <td width=59 valign=top style='width:44.4pt;border-top:none;border-left:none;    

  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> char</p>    

  </td>    

 </tr>    

 <tr>    

  <td width=94 valign=top style='width:70.4pt;border:solid windowtext .5pt;    

  border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> wchar</p>    

  </td>    

  <td width=56 valign=top style='width:42.25pt;border-top:none;border-left:    

  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> wchar</p>    

  </td>    

  <td width=64 valign=top style='width:47.75pt;border-top:none;border-left:    

  none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> wchar&amp; </p>    

  </td>    

  <td width=61 valign=top style='width:45.6pt;border-top:none;border-left:none;    

  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> wchar&amp; </p>    

  </td>    

  <td width=59 valign=top style='width:44.4pt;border-top:none;border-left:none;    

  border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;    

  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;    

  padding:0in 5.4pt 0in 5.4pt'>    

  <p class=BodyText> wchar</p>    

  </td>    

 </tr>    

</table>    

    

<p class=Captions><b>Figure    

6:</b> List of basic    

data types mapped to C++.</p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=BodyText> <b>Exceptions.</b> The last major item that can be    

described in the IDL is an exception. Two main categories of exceptions exist    

in CORBA: system and user-defined. The exception mechanism allows remote    

objects to throw exceptions on the client side. System exceptions are    

descendants of <i>SystemException</i> and    

consist of a major and minor error code along with the message. User-defined    

exceptions are derived from <i>UserException</i>.    

To define an exception, use the keyword <b>exception</b>, then define variables    

held by the exception. Here is the syntax for <b>exception</b>:</p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=Code><span class=Code><b>exception</b> <i>identifier</i> </span></p>    

    

<p class=Code><span class=Code>{</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp; [<i>type</i> <i>identifier</i>]</span></p>    

    

<p class=Code><span class=Code>};</span></p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=BodyText> The    

following code shows an example of an exception in IDL: </p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=Code><span class=Code><b>exception</b> InvalidAddress</span></p>    

    

<p class=Code><span class=Code>{</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;<b>string</b> message; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;<b>short</b> errorLevel; </span></p>    

    

<p class=Code><span class=Code>};</span></p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=BodyText> Figure 7    

shows an example of an exception mapped to C++.</p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=Code><span class=Code><b>class</b>    

InvalidAddress : <b>public</b>    

CORBA_UserException</span></p>    

    

<p class=Code><span class=Code>{</span></p>    

    

<p class=Code><span class=Code><b>&nbsp;&nbsp;public</b>:</span></p>    

    

<p class=Code><span class=Code><span Class=CodeGrn>#if    

defined(MSVCNEWDLL_BUG) </span></span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> void</b>    

*<b>operator</b> <b>new</b>(size_t ts); </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> void</b>    

<b>operator</b> <b>delete</b>(<b>void</b> *p); </span></p>    

    

<p class=Code><span class=Code><span Class=CodeGrn>#endif</span></span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> static</b>    

<b>const</b> CORBA_Exception::Description    

_description; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;CORBA::String_var message; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;CORBA::Short errorLevel; </span></p>    

    

<p class=Code><span class=Code>&nbsp; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;InvalidAddress() {}</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;InvalidAddress(</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> const</b>    

<b>char</b> * _message, </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;CORBA::Short _errorLevel) </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message = _message; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errorLevel = _errorLevel; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> static</b>    

CORBA::Exception *_factory()</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> return</b>    

<b>new</b> InvalidAddress();</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;~InvalidAddress() {}</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> virtual</b>    

<b>const</b>    

CORBA_Exception::Description&amp; _desc()<b>const</b>;</span></p>    

    

<p class=Code><span class=Code>&nbsp; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> static</b>    

InvalidAddress *_narrow(CORBA::Exception *_exc); </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;CORBA::Exception *_deep_copy() <b    

style='mso-bidi-font-weight:normal'>const</b></span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> return</b>    

<b>new</b> InvalidAddress(*<b    

style='mso-bidi-font-weight:normal'>this</b>);</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> void</b>    

_<b>throw</b>() <b>const</b></span></p>    

    

<p class=Code><span class=Code><b>&nbsp;&nbsp;&nbsp;</b>&nbsp;{ </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> throw</b>    

*<b>this</b>;</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>    

    

<p class=Code><span class=Code>&nbsp; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> void</b>    

_write(VISostream&amp;) <b>const</b>;</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> void</b>    

_copy(VISistream&amp;); </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> void</b>    

_pretty_print(VISostream&amp;) <b>const</b>;</span></p>    

    

<p class=Code><span class=Code>&nbsp; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> inline</b>    

<b>friend</b> VISistream&amp; <b    

style='mso-bidi-font-weight:normal'>operator</b>&gt;&gt;(VISistream&amp; _strm, </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvalidAddress&amp; _e) </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CORBA::String_var _exp_name; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_strm &gt;&gt; _exp_name; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_e._copy(_strm); </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> return</b>    

_strm; </span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>    

    

<p class=Code><span class=Code>};</span></p>    

    

<p class=Captions><b>Figure    

7:</b> Code showing an    

exception mapped to C++.</p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=BodyText> To    

create an IDL mapping, declare either a module or interface. Next, define the    

operations and attributes of the interface(s). Here's an example of the IDL for    

a customer interface: </p>    

    

<p class=BodyText> &nbsp; </p>    

    

<p class=Code><span class=Code><b>interface</b> Customer</span></p>    

    

<p class=Code><span class=Code>{</span></p>    

    

<p class=Code><span class=Code>&nbsp;&nbsp;<b>attribute</b> <b>string</b> name; </span></p>   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -