﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-笔记-文章分类-C++Builder</title><link>http://www.cppblog.com/einz/category/9162.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 17 Jul 2009 22:44:36 GMT</lastBuildDate><pubDate>Fri, 17 Jul 2009 22:44:36 GMT</pubDate><ttl>60</ttl><item><title>OnClose</title><link>http://www.cppblog.com/einz/articles/71351.html</link><dc:creator>EiN</dc:creator><author>EiN</author><pubDate>Tue, 06 Jan 2009 08:26:00 GMT</pubDate><guid>http://www.cppblog.com/einz/articles/71351.html</guid><wfw:comment>http://www.cppblog.com/einz/comments/71351.html</wfw:comment><comments>http://www.cppblog.com/einz/articles/71351.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/einz/comments/commentRss/71351.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/einz/services/trackbacks/71351.html</trackback:ping><description><![CDATA[Occurs when the form closes.<br><br>enum TCloseAction { caNone, caHide, caFree, caMinimize };<br>typedef void __fastcall (__closure *TCloseEvent)(System::TObject* Sender, TCloseAction &amp;Action);<br>__property TCloseEvent OnClose = {read=FOnClose, write=FOnClose, stored=IsForm};<br><br>Description<br><br>Use OnClose to perform special processing when the form closes. The OnClose event specifies which event handler to call when a form is about to close. The handler specified by OnClose might, for example, test to make sure all fields in a data-entry form have valid contents before allowing the form to close.<br><br>A form is closed by the Close method or when the user chooses Close from the form's system menu.<br><br>The TCloseEvent type points to a method that handles the closing of a form. The value of the Action parameter determines if the form actually closes. These are the possible values of Action:<br><br>Value&nbsp;&nbsp;&nbsp; Meaning<br><br>caNone&nbsp;&nbsp;&nbsp; The form is not allowed to close, so nothing happens.<br>caHide&nbsp;&nbsp;&nbsp; The form is not closed, but just hidden. Your application can still access a hidden form.<br><span style="COLOR: red">caFree&nbsp;&nbsp;&nbsp; The form is closed and all allocated memory for the form is freed.</span><br>caMinimize&nbsp;&nbsp;&nbsp; The form is minimized, rather than closed. This is the default action for MDI child forms.<br><br>If a form is an MDI child form, and its BorderIcons property is biMinimize, then the default Action is caMinimize. If a MDI child form does not have these settings, the default Action is caNone, meaning that nothing happens when the user attempts to close the form.<br><br>If a form is an SDI child form, Action defaults to caHide.<br><br>To close the form and free it in an OnClose event, set Action to caFree.<br><br>Note:&nbsp;&nbsp;&nbsp; When the application shuts down, the main form receives an OnClose event, but any child forms do not receive the OnClose event.<br>
<img src ="http://www.cppblog.com/einz/aggbug/71351.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/einz/" target="_blank">EiN</a> 2009-01-06 16:26 <a href="http://www.cppblog.com/einz/articles/71351.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小观构件</title><link>http://www.cppblog.com/einz/articles/71034.html</link><dc:creator>EiN</dc:creator><author>EiN</author><pubDate>Fri, 02 Jan 2009 14:21:00 GMT</pubDate><guid>http://www.cppblog.com/einz/articles/71034.html</guid><wfw:comment>http://www.cppblog.com/einz/comments/71034.html</wfw:comment><comments>http://www.cppblog.com/einz/articles/71034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/einz/comments/commentRss/71034.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/einz/services/trackbacks/71034.html</trackback:ping><description><![CDATA[<span style="FONT-FAMILY: Lucida Console">摘自BCB的例子,越看越有点迷糊,还越觉得niubility.像观察者又肯定不是,实在是牛...</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console"><span style="FONT-FAMILY: Lucida Console">Main.cpp:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">----------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Borland&nbsp;C++Builder<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Copyright&nbsp;(c)&nbsp;1987,&nbsp;1998-2002&nbsp;Borland&nbsp;International&nbsp;Inc.&nbsp;All&nbsp;Rights&nbsp;Reserved.<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">----------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;minicomp.cpp&nbsp;-&nbsp;uses&nbsp;the&nbsp;TCounter&nbsp;example&nbsp;component<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">minicomp.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">condefs.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">USEUNIT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">counter.cpp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">main()<br>{<br>&nbsp;&nbsp;TExample&nbsp;example;<br><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">TExample::TExample()<br>{<br>&nbsp;&nbsp;TCounter&nbsp;Counter(</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i;<br>&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">把控件Counter的接口FMultiple和外部实现MultipleReached连接上</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;Counter.OnMultiple&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;MultipleReached;<br><br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;Counter.Increment();<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;TExample::MultipleReached(TCounter&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Sender)<br>{<br>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Multiple=%d&nbsp;reached&nbsp;with&nbsp;val=%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;Sender</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Multiple,&nbsp;Sender</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Val);<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------<br></span></div>
<br style="FONT-FAMILY: Lucida Console"><span style="FONT-FAMILY: Lucida Console">minicomp.h:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;minicomp.h&nbsp;-&nbsp;uses&nbsp;the&nbsp;TCounter&nbsp;example&nbsp;component<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">counter.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TExample<br>{<br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MultipleReached(TCounter&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Sender);<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;TExample();<br>};<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span></div>
<br style="FONT-FAMILY: Lucida Console"><span style="FONT-FAMILY: Lucida Console">counter.h:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;counter.h.&nbsp;-&nbsp;example&nbsp;of&nbsp;a&nbsp;small,&nbsp;non-visual&nbsp;counter&nbsp;component<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TCounter;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;forward</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>typedef&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;(__closure&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">TCounterEvent)(TCounter&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Sender);<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TCounter&nbsp;<br>{<br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;TCounterEvent&nbsp;FOnMultiple;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这就是个函数接口</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;FVal;<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;FMultiple;<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;__property&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Val&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{read</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FVal,&nbsp;write</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FVal};<br>&nbsp;&nbsp;__property&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Multiple&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{read</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FMultiple};<br>&nbsp;&nbsp;__property&nbsp;TCounterEvent&nbsp;OnMultiple&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{read</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FOnMultiple,&nbsp;write</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">FOnMultiple};<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Clear();<br>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Increment();<br>&nbsp;&nbsp;TCounter(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Multiple);<br>};<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span></div>
<br style="FONT-FAMILY: Lucida Console"><span style="FONT-FAMILY: Lucida Console">counter.cpp:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;counter.cpp&nbsp;-&nbsp;example&nbsp;of&nbsp;a&nbsp;small,&nbsp;non-visual&nbsp;counter&nbsp;component<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">counter.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">TCounter::TCounter(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Multiple)<br>{<br>&nbsp;&nbsp;FMultiple&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Multiple;<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;TCounter::Clear()<br>{<br>&nbsp;&nbsp;FVal&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;TCounter::Increment()<br>{<br>&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这句执行时都是外部来调用的,此时OnMultiple已经和外面那个函数接口连接上了<br>&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">也就是调用的其实是外面进来的那个函数,把this传出去,让外部那个函数操作<br>&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">TExample::MultipleReached(this)</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(((</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">FVal)&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">&nbsp;FMultiple)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnMultiple(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">);<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-------------------------------------------------------------------------</span></div>
<br style="FONT-FAMILY: Lucida Console">
<img src ="http://www.cppblog.com/einz/aggbug/71034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/einz/" target="_blank">EiN</a> 2009-01-02 22:21 <a href="http://www.cppblog.com/einz/articles/71034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>New Application</title><link>http://www.cppblog.com/einz/articles/70885.html</link><dc:creator>EiN</dc:creator><author>EiN</author><pubDate>Wed, 31 Dec 2008 15:10:00 GMT</pubDate><guid>http://www.cppblog.com/einz/articles/70885.html</guid><wfw:comment>http://www.cppblog.com/einz/comments/70885.html</wfw:comment><comments>http://www.cppblog.com/einz/articles/70885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/einz/comments/commentRss/70885.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/einz/services/trackbacks/70885.html</trackback:ping><description><![CDATA[<span style="FONT-FAMILY: Lucida Console">Project1.cpp:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vcl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#pragma&nbsp;hdrstop<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">USEFORM(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Unit1.cpp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;Form1);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">调用这个vcl模块,详见Unit1.cpp<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里很搞笑,没给参数名重写,不知道这样函数里面能不能用到这几个参数<img src="http://www.cppblog.com/Images/dot.gif"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">不过好像也就没用<img src="http://www.cppblog.com/Images/dot.gif"></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">WINAPI&nbsp;WinMain(HINSTANCE,&nbsp;HINSTANCE,&nbsp;LPSTR,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Initialize();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">The&nbsp;owner&nbsp;of&nbsp;the&nbsp;new&nbsp;form&nbsp;is&nbsp;the&nbsp;Application&nbsp;object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">__classid返回一个指向TForm1的vtable的指针,这点还要再看看实现过程</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">CreateForm(__classid(TForm1),&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">Form1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Run();<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(Exception&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">exception)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">ShowException(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">exception);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(<img src="http://www.cppblog.com/Images/dot.gif">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000">&nbsp;Exception(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(Exception&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">exception)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">ShowException(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">exception);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------<br></span></div>
<br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console"><span style="FONT-FAMILY: Lucida Console">Unit1.h:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#ifndef&nbsp;Unit1H<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Unit1H</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">都只是些声明部分,所以包含在头文件里面</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Classes.hpp</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">TPersistent,&nbsp;TComponent</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Controls.hpp</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">TControl,&nbsp;TWinControl</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">StdCtrls.hpp</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">TButton</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Forms.hpp</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">TApplication,&nbsp;TForm<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br>/*</span><span style="COLOR: #008000"><br>TObject(RTTI,垃圾回收等最基本的)<br>&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;|--TList(stores&nbsp;an&nbsp;array&nbsp;of&nbsp;pointers)<br>&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;|--TStream(read&nbsp;and&nbsp;write&nbsp;to&nbsp;some&nbsp;media)<br>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--TFileStream,TStringStream,TWinSocketStrem<img src="http://www.cppblog.com/Images/dot.gif"><br>&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;|--TFiler(读写控件[objects]属性:比如保存dfm文件信息,在内存中暂存控件信息等)<br>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--TReader<br>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--TWriter(具体实现Filer功能)<br>&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;|--TPersistent(have&nbsp;assignment&nbsp;and&nbsp;streaming&nbsp;capabilities)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TStrings(for&nbsp;objects&nbsp;that&nbsp;represent&nbsp;a&nbsp;list&nbsp;of&nbsp;strings)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--TStringList(具体实现)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TComponent(控件父类,包括可显示和不可显示)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TApplication(抽象WindowsGUI环境,消息机制<img src="http://www.cppblog.com/Images/dot.gif">当然还有针对web的环境)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TControl(可视控件)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TWinControl(针对Windows的可视控件)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TButtonControl(Button的抽象)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--TButton(Button的具体实现)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TScrollingWinControl(支持滚动条的Windows控件)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--TCustomForm<br>&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;|<br>&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;|--TForm<br></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TForm1&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;TForm<br>{<br>__published:&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;IDE-managed&nbsp;Components</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;User&nbsp;declarations</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;User&nbsp;declarations</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;__fastcall&nbsp;TForm1(TComponent</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Owner);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Owner是创造者,Parent是呈现者(只对于可视控件)</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">};<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br>/*</span><span style="COLOR: #008000"><br>把这个vcl(Form1)导出,其他模块使用这个头文件时就告诉编译器,这个vcl在别处具体定义<br></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">extern</span><span style="COLOR: #000000">&nbsp;PACKAGE&nbsp;TForm1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Form1;<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br>&nbsp;</span></div>
<br style="FONT-FAMILY: Lucida Console"><span style="FONT-FAMILY: Lucida Console">Unit1.cpp:</span><br style="FONT-FAMILY: Lucida Console"><br style="FONT-FAMILY: Lucida Console">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vcl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#pragma&nbsp;hdrstop&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">之前的头文件可以使用头文件缓存技术,其他包含vcl.h的编译块就编译一次</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Unit1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#pragma&nbsp;package(smart_init)<br>#pragma&nbsp;resource&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.dfm</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br>这里的疑问在于,头文件里面已经有一个extern的指针,这里为何还要再次搞出个指针.<br>注意在Project1.cpp里面有个USEFORM的宏,这个宏的具体定义在vcl\sysclass.h文件中<br>如下:<br><br>#ifdef&nbsp;BCBVER1<br>&nbsp;&nbsp;#define&nbsp;USEFORM(FileName,&nbsp;FormName)&nbsp;\<br>&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;DELPHICLASS&nbsp;T##FormName;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\<br>&nbsp;&nbsp;&nbsp;&nbsp;extern&nbsp;T##FormName&nbsp;*FormName;<br>#else<br>&nbsp;&nbsp;#define&nbsp;USEFORM(FileName,&nbsp;FormName)&nbsp;\<br>&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;DELPHICLASS&nbsp;T##FormName;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\<br>&nbsp;&nbsp;&nbsp;&nbsp;extern&nbsp;PACKAGE&nbsp;T##FormName&nbsp;*FormName;<br>#endif<br><br>可以看出这里FileName根本没用上,所以"既然给了cpp也就给了.h也就给了那个extern指针"<br>的想法是错误的,cpp文件根本就没有起到任何作用,还是完全依赖连接时靠extern的存储<br>属性在obj里面去找.这也就是为什么cpp里面如果没有下面这个指针声明,报错的不是Unit1<br>而是Project1,因为是在Project1调用了这么个没有定义个指针.还有一点就是,之所以会这<br>样是因为.h是不会编译的,Project1在Unit1.cpp对应的obj里面去找,当然找不到.所以这里<br>必须要再次写上一句.<br></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br>TForm1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Form1;<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">__fastcall&nbsp;TForm1::TForm1(TComponent</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Owner)<br>&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;TForm(Owner)<br>{<br>}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">---------------------------------------------------------------------------</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;</span></div>
<img src ="http://www.cppblog.com/einz/aggbug/70885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/einz/" target="_blank">EiN</a> 2008-12-31 23:10 <a href="http://www.cppblog.com/einz/articles/70885.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>