<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">You need to put the dllimport in a class.<div><br class="webkit-block-placeholder"></div><div>-g</div><div><br><div><div>On 17-Dec-07, at 7:31 PM, Gavin Landon wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div> <!-- Converted from text/rtf format --><p><span lang="en-us"><font size="2" face="Arial">I'm receiving an error for uname on the code</font><font size="2" face="Arial"> line</font><font size="2" face="Arial">:&nbsp; </font></span> <br><span lang="en-us"><font size="2" face="Arial">static extern int<u><i> uname</i></u><i></i> (IntPtr buf);</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">Error: </font></span> <br><span lang="en-us"><font size="2" face="Arial">A namespace can only contain types and namespace declarations (CS0116)</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">Thanks for your time,</font></span> <br><span lang="en-us"><font size="2" face="Arial">Gavin</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">-----Original Message-----</font></span> <br><span lang="en-us"><font size="2" face="Arial">From: Miguel de Icaza [</font></span><a href="mailto:miguel@novell.com"><span lang="en-us"><u><font color="#0000FF" size="2" face="Arial">mailto:miguel@novell.com</font></u></span></a><span lang="en-us"><font size="2" face="Arial">] </font></span> <br><span lang="en-us"><font size="2" face="Arial">Sent: Monday, December 17, 2007 6:04 PM</font></span> <br><span lang="en-us"><font size="2" face="Arial">To: Gavin Landon</font></span> <br><span lang="en-us"><font size="2" face="Arial">Cc: <a href="mailto:mono-osx@lists.ximian.com">mono-osx@lists.ximian.com</a></font></span> <br><span lang="en-us"><font size="2" face="Arial">Subject: Re: [Mono-osx] OSX vs Linux</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">Hello,</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&gt; I'm having some trouble distinguishing the difference between Linux </font></span> <br><span lang="en-us"><font size="2" face="Arial">&gt; and OSX.</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">Oh.</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&gt;From the subject line I felt a new flame war was brewing.</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">The uname approach works, the following is a piece of uname that uses P/Invoke instead of depending on uname, its part of mkbundle.cs:</font></span></p><p><span lang="en-us"><font size="2" face="Arial">using System.Runtime.InteropServices;</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [DllImport ("libc")]</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static extern int uname (IntPtr buf);</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void DetectOS ()</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!IsUnix) {</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine ("OS is: Windows");</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; style = "windows";</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IntPtr buf = UnixMarshal.AllocHeap(8192);</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (uname (buf) != 0){</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine ("Warning: Unable to detect OS");</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string os = Marshal.PtrToStringAnsi (buf);</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine ("OS is: " + os);</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (os == "Darwin")</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; style = "osx";</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UnixMarshal.FreeHeap(buf);</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p><p><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static bool IsUnix {</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get {</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int p = (int) Environment.OSVersion.Platform;</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((p == 4) || (p == 128));</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> <br><span lang="en-us"><font size="2" face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></span> </p> </div> _______________________________________________<br>Mono-osx mailing list<br><a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>http://lists.ximian.com/mailman/listinfo/mono-osx<br></blockquote></div><br></div></body></html>