<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Delphi for .NET namespaces misunderstood?</title>
	<atom:link href="http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817</link>
	<description>Rudy Velthuis</description>
	<pubDate>Tue, 16 Mar 2010 17:47:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Dmitry</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817#comment-792</link>
		<dc:creator>Dmitry</dc:creator>
		<pubDate>Thu, 08 May 2008 13:06:57 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2006/10/04/26309/#comment-792</guid>
		<description>Hello,

Sorry for posting off topic here, I just can't find direct mail or other communication channel at your site. 

In your article you have mentioned a possible solution to CRTL external functions problem by declaring them as external in msvcrt.dll I've found another way how to solve this problem-  extract all OBJ files directly from BCB55's cw32.lib file using tlib as a helper tool. __ftol and _ftol are in ftol.obj This way I was able to bind sqlite3.lib directly into my Delphi project without DLL file (81 obj files, the order of $L is important) The only unresolved external is _wsprintfA wich is in user32.dll</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>Sorry for posting off topic here, I just can&#8217;t find direct mail or other communication channel at your site. </p>
<p>In your article you have mentioned a possible solution to CRTL external functions problem by declaring them as external in msvcrt.dll I&#8217;ve found another way how to solve this problem-  extract all OBJ files directly from BCB55&#8217;s cw32.lib file using tlib as a helper tool. __ftol and _ftol are in ftol.obj This way I was able to bind sqlite3.lib directly into my Delphi project without DLL file (81 obj files, the order of $L is important) The only unresolved external is _wsprintfA wich is in user32.dll</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olaf Monien</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817#comment-21</link>
		<dc:creator>Olaf Monien</dc:creator>
		<pubDate>Tue, 10 Oct 2006 20:48:25 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2006/10/04/26309/#comment-21</guid>
		<description>I don't see a technical problem either with the &#34;Units&#34; subnamespace. It's purely cosmetic - IMO.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t see a technical problem either with the &quot;Units&quot; subnamespace. It&#8217;s purely cosmetic - IMO.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rudy Velthuis</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817#comment-20</link>
		<dc:creator>Rudy Velthuis</dc:creator>
		<pubDate>Mon, 09 Oct 2006 16:43:53 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2006/10/04/26309/#comment-20</guid>
		<description>AFAIK, the Units subnamespace is the namespace binding non-method functions and procedures in Delphi to .NET classes. There is no way to get rid of it, and I personally don't see it as a problem. It may look weird in Reflector, but Reflector is not .NET, it is only a tool for it.</description>
		<content:encoded><![CDATA[<p>AFAIK, the Units subnamespace is the namespace binding non-method functions and procedures in Delphi to .NET classes. There is no way to get rid of it, and I personally don&#8217;t see it as a problem. It may look weird in Reflector, but Reflector is not .NET, it is only a tool for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olaf Monien</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817#comment-19</link>
		<dc:creator>Olaf Monien</dc:creator>
		<pubDate>Mon, 09 Oct 2006 00:47:54 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2006/10/04/26309/#comment-19</guid>
		<description>Actually discard #2 - it's been a compiler error ....&lt;br&gt;&lt;br&gt;This just leaves #1 - the &#34;mysterious Units&#34; namespace - which make Delphi assemblies look weird to non-Delphi users. They just have to ignore it, as everything else works fine.</description>
		<content:encoded><![CDATA[<p>Actually discard #2 - it&#8217;s been a compiler error &#8230;.</p>
<p>This just leaves #1 - the &quot;mysterious Units&quot; namespace - which make Delphi assemblies look weird to non-Delphi users. They just have to ignore it, as everything else works fine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olaf Monien</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817#comment-18</link>
		<dc:creator>Olaf Monien</dc:creator>
		<pubDate>Sat, 07 Oct 2006 21:50:44 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2006/10/04/26309/#comment-18</guid>
		<description>Good post! There seem to be indeed some misunderstandings about namespaces out there - not just in the Delphi world ;-)&lt;br&gt;&lt;br&gt;Anyway, there are two things which may lead to confusion in Delphi.NET:&lt;br&gt;&lt;br&gt;1: Delphi always emits an *additional* implicit &#34;Units&#34; name space. If you have a unit &#34;Foo.Bar.Test.pas&#34; containing a class &#34;Test&#34; Then you will see a name space &#34;Foo.Bar&#34; as expected, but also a name space Foo.Bar.Units, also containing a class &#34;Test&#34;. &lt;br&gt;This is not just an &#34;alias&#34;, in fact Delphi will mark any class in these &#34;Units&#34; name spaces as &#34;sealed&#34;, and these classes appear incomplete (no constructors, etc). In other words this is just some &#34;magic&#34;, used by Delphi only. In other .NET languages you should not touch these &#34;Units&#34; namespaces.&lt;br&gt;&lt;br&gt;2: Error Insight (at least on my machine) does not like stuff like this:&lt;br&gt;unit Foo.Bar.Class1;&lt;br&gt;...&lt;br&gt;end;&lt;br&gt;&lt;br&gt;unit Foo.Bar.Class2;&lt;br&gt;interface&lt;br&gt;...&lt;br&gt;implementation&lt;br&gt; uses Class1;&lt;br&gt;...&lt;br&gt;&lt;br&gt;This will compile fine, but &#34;uses Class1&#34; will be underlined in red. Errorinsight only likes the full reference - no matter what's defined as Default Namespace:&lt;br&gt;&lt;br&gt;unit Foo.Bar.Class2;&lt;br&gt;interface&lt;br&gt;...&lt;br&gt;implementation&lt;br&gt; uses Foo.Bar.Class1;&lt;br&gt;...&lt;br&gt;</description>
		<content:encoded><![CDATA[<p>Good post! There seem to be indeed some misunderstandings about namespaces out there - not just in the Delphi world ;-)</p>
<p>Anyway, there are two things which may lead to confusion in Delphi.NET:</p>
<p>1: Delphi always emits an *additional* implicit &quot;Units&quot; name space. If you have a unit &quot;Foo.Bar.Test.pas&quot; containing a class &quot;Test&quot; Then you will see a name space &quot;Foo.Bar&quot; as expected, but also a name space Foo.Bar.Units, also containing a class &quot;Test&quot;.<br />
<br />This is not just an &quot;alias&quot;, in fact Delphi will mark any class in these &quot;Units&quot; name spaces as &quot;sealed&quot;, and these classes appear incomplete (no constructors, etc). In other words this is just some &quot;magic&quot;, used by Delphi only. In other .NET languages you should not touch these &quot;Units&quot; namespaces.</p>
<p>2: Error Insight (at least on my machine) does not like stuff like this:<br />
<br />unit Foo.Bar.Class1;<br />
<br />&#8230;<br />
<br />end;</p>
<p>unit Foo.Bar.Class2;<br />
<br />interface<br />
<br />&#8230;<br />
<br />implementation<br />
<br /> uses Class1;<br />
<br />&#8230;</p>
<p>This will compile fine, but &quot;uses Class1&quot; will be underlined in red. Errorinsight only likes the full reference - no matter what&#8217;s defined as Default Namespace:</p>
<p>unit Foo.Bar.Class2;<br />
<br />interface<br />
<br />&#8230;<br />
<br />implementation<br />
<br /> uses Foo.Bar.Class1;<br />
<br />&#8230;<br />
</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco van de Voort</title>
		<link>http://blogs.teamb.com/rudyvelthuis/2006/10/04/27817#comment-8</link>
		<dc:creator>Marco van de Voort</dc:creator>
		<pubDate>Thu, 05 Oct 2006 10:42:20 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/rudyvelthuis/2006/10/04/26309/#comment-8</guid>
		<description>/me puts in a vote for Modula-2 namespace handling.&lt;br&gt;&lt;br&gt;Actually I M2ed a while before returning to Pascal (then still TP), but that choice was more based on the compiler than the language.&lt;br&gt;&lt;br&gt;Inner modules and the import behaviour are still the nice parts of M2.</description>
		<content:encoded><![CDATA[<p>/me puts in a vote for Modula-2 namespace handling.</p>
<p>Actually I M2ed a while before returning to Pascal (then still TP), but that choice was more based on the compiler than the language.</p>
<p>Inner modules and the import behaviour are still the nice parts of M2.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
