📄 cb200005rs_f.asp.htm
字号:
</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& </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& </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& </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& </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& </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& </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> </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> </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> [<i>type</i> <i>identifier</i>]</span></p>
<p class=Code><span class=Code>};</span></p>
<p class=BodyText> </p>
<p class=BodyText> The
following code shows an example of an exception in IDL: </p>
<p class=BodyText> </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> <b>string</b> message; </span></p>
<p class=Code><span class=Code> <b>short</b> errorLevel; </span></p>
<p class=Code><span class=Code>};</span></p>
<p class=BodyText> </p>
<p class=BodyText> Figure 7
shows an example of an exception mapped to C++.</p>
<p class=BodyText> </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> 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> <b> void</b>
*<b>operator</b> <b>new</b>(size_t ts); </span></p>
<p class=Code><span class=Code> <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> <b> static</b>
<b>const</b> CORBA_Exception::Description
_description; </span></p>
<p class=Code><span class=Code> CORBA::String_var message; </span></p>
<p class=Code><span class=Code> CORBA::Short errorLevel; </span></p>
<p class=Code><span class=Code> </span></p>
<p class=Code><span class=Code> InvalidAddress() {}</span></p>
<p class=Code><span class=Code> InvalidAddress(</span></p>
<p class=Code><span class=Code> <b> const</b>
<b>char</b> * _message, </span></p>
<p class=Code><span class=Code> CORBA::Short _errorLevel) </span></p>
<p class=Code><span class=Code> { </span></p>
<p class=Code><span class=Code> message = _message; </span></p>
<p class=Code><span class=Code> errorLevel = _errorLevel; </span></p>
<p class=Code><span class=Code> } </span></p>
<p class=Code><span class=Code> <b> static</b>
CORBA::Exception *_factory()</span></p>
<p class=Code><span class=Code> { </span></p>
<p class=Code><span class=Code> <b> return</b>
<b>new</b> InvalidAddress();</span></p>
<p class=Code><span class=Code> } </span></p>
<p class=Code><span class=Code> ~InvalidAddress() {}</span></p>
<p class=Code><span class=Code> <b> virtual</b>
<b>const</b>
CORBA_Exception::Description& _desc()<b>const</b>;</span></p>
<p class=Code><span class=Code> </span></p>
<p class=Code><span class=Code> <b> static</b>
InvalidAddress *_narrow(CORBA::Exception *_exc); </span></p>
<p class=Code><span class=Code> CORBA::Exception *_deep_copy() <b
style='mso-bidi-font-weight:normal'>const</b></span></p>
<p class=Code><span class=Code> { </span></p>
<p class=Code><span class=Code> <b> return</b>
<b>new</b> InvalidAddress(*<b
style='mso-bidi-font-weight:normal'>this</b>);</span></p>
<p class=Code><span class=Code> } </span></p>
<p class=Code><span class=Code> <b> void</b>
_<b>throw</b>() <b>const</b></span></p>
<p class=Code><span class=Code><b> </b> { </span></p>
<p class=Code><span class=Code> <b> throw</b>
*<b>this</b>;</span></p>
<p class=Code><span class=Code> } </span></p>
<p class=Code><span class=Code> </span></p>
<p class=Code><span class=Code> <b> void</b>
_write(VISostream&) <b>const</b>;</span></p>
<p class=Code><span class=Code> <b> void</b>
_copy(VISistream&); </span></p>
<p class=Code><span class=Code> <b> void</b>
_pretty_print(VISostream&) <b>const</b>;</span></p>
<p class=Code><span class=Code> </span></p>
<p class=Code><span class=Code> <b> inline</b>
<b>friend</b> VISistream& <b
style='mso-bidi-font-weight:normal'>operator</b>>>(VISistream& _strm, </span></p>
<p class=Code><span class=Code> InvalidAddress& _e) </span></p>
<p class=Code><span class=Code> { </span></p>
<p class=Code><span class=Code> CORBA::String_var _exp_name; </span></p>
<p class=Code><span class=Code> _strm >> _exp_name; </span></p>
<p class=Code><span class=Code> _e._copy(_strm); </span></p>
<p class=Code><span class=Code> <b> return</b>
_strm; </span></p>
<p class=Code><span class=Code> } </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> </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> </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> <b>attribute</b> <b>string</b> name; </span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -