[ARX]ObjectARX managed wrapper classes参考中文档(4)
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体><FONT color=#ff0000>和C++交互</FONT></FONT></FONT><P class=body style="MARGIN: auto 0cm"><FONT face=宋体 size=3>.NET程序中可以包含C++代码,所以可以使用没有对应托管封装类的ObjectARX API。ObjectARX托管封装类有一个属性和一个方法,用来在托管对象和非托管对象之间进行交互。</FONT>
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体>从托管对象获取内在非托管对象的指针,可以使用UnmanagedObject属性。利用非托管对象产生托管对象,可以使用DisposableWrapper.Create()方法。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT>
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体><FONT color=#ff0000>和COM交互<o:p></o:p></FONT></FONT></FONT>
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体>你可以通过.NET程序获取AutoCAD Automation对象模型和其它的ObjectARX COM API。</FONT></FONT>
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体>在.NET中使用AutoCAD COM API</FONT></FONT>
<OL type=1>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt">创建一个<FONT face="Times New Roman">.NET</FONT>解决方案和工程。<FONT face="Times New Roman"> </FONT></LI></OL>
<OL type=1 start=2>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt">从工程菜单或解决方案浏览器中选择添加引用。</LI></OL>
<OL type=1 start=3>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt">在<FONT face="Times New Roman">COM </FONT>选项<FONT face="Times New Roman">,</FONT>选择<FONT face="Times New Roman">AutoCAD 2005 Type Library </FONT>和<FONT face="Times New Roman">AutoCAD/ObjectDBX Common 16.0 Type Library. </FONT></LI></OL>
<OL type=1 start=4>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l4 level1 lfo4; tab-stops: list 36.0pt">把<FONT face="Times New Roman">Autodesk.AutoCAD.Interop</FONT>命名空间加入到<FONT face="Times New Roman">using</FONT><FONT face="Times New Roman"> </FONT>或<FONT face="Times New Roman"> Imports </FONT>指令。</LI></OL>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">你可以通过使用以下属性从相应的<FONT face="Times New Roman">.NET</FONT>对象获得<FONT face="Times New Roman">COM</FONT>对象的指针:
<UL type=disc>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level1 lfo5; tab-stops: list 36.0pt"><FONT face="Times New Roman">Application.AcadApplication</FONT></LI></UL>
<UL type=disc>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo6; tab-stops: list 36.0pt"><FONT face="Times New Roman">Database.AcadDatabase </FONT></LI></UL>
<UL type=disc>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l5 level1 lfo7; tab-stops: list 36.0pt"><FONT face="Times New Roman">Document.AcadDocument<o:p></o:p></FONT></LI></UL>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">例如,以下的<FONT face="Times New Roman">C#</FONT>代码使用<FONT face="Times New Roman">COM</FONT>程序对象来提示用户输入一个角度:
<PRE><FONT face=黑体 size=2>((AcadApplication)Application.AcadApplication).ActiveDocument.Utility.GetAngle();</FONT></PRE><PRE><FONT size=2><FONT face=黑体>从</FONT>COM<FONT face=黑体>对象获取</FONT>.NET<FONT face=黑体>对象,可以使用FromAcadXxx静态函数。例如,Database.FromAcadDatabase可以从</FONT>COM<FONT face=黑体>数据库对象获得</FONT>.NET<FONT face=黑体>数据库。<o:p></o:p></FONT></FONT></PRE>
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体> <o:p></o:p></FONT></FONT>
<P class=body style="MARGIN: auto 0cm"><FONT size=3><FONT face=宋体> <o:p></o:p></FONT></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman"> <o:p></o:p></FONT>
页:
[1]