<div dir="ltr"><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Environment.GetCommandLineArgs </span>is an internal call and my assumption was that the internal call is not registered to a C function. But now I see that I can call <span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Environment.GetCommandLineArgs.</span><div>
<div>I checked it out and <span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Environment.GetCommandLineArgs </span>returns null if you embed mono into your application. </div></div><div><br></div>
<div>So you have to check for a null reference. And and maybe you have to set <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px">GLib.Global.ProgramName to static name in case.</span></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/2 "Andrés G. Aragoneses" <span dir="ltr"><<a href="mailto:knocte@gmail.com" target="_blank">knocte@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Being not registered means that accessing GetCommandLineArgs throws an exception? If yes, what kind?<div class="im"><br>
<br>
On 02/11/13 22:10, Vardar Sahin wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Hey Andrés,<br>
<br>
thanks for the quick replay. I am not sure if this will fix the problem.<br>
I think the problem is that you can not call<br>
Environment.<u></u>GetCommandLineArgs() when you embed mono.<br>
Environment.<u></u>GetCommandLineArgs() is an internal call and it seems like<br>
it is not registered when you embed mono.<br>
<br>
Best<br>
Sahin<br>
<br>
<br>
<br>
<br>
2013/11/2 "Andrés G. Aragoneses" <<a href="mailto:knocte@gmail.com" target="_blank">knocte@gmail.com</a><br></div>
<mailto:<a href="mailto:knocte@gmail.com" target="_blank">knocte@gmail.com</a>>><div class="im"><br>
<br>
    On 02/11/13 21:42, Vardar Sahin wrote:<br>
<br>
        Hey monodev fellows,<br>
<br>
        first of all I appreciate all your hard work and want to<br>
        contribute this<br>
        to the mono project.<br>
<br>
        Right now it is not possible to use GTK# with an application which<br>
        embeds mono. GTK# works just fine if you use mono as a standalone<br>
        application eg mono.exe.<br>
<br>
        The reason why GTK# does not works when you embed mono is as<br>
        fallowing.<br>
<br>
        Each GTK# Application has to call Application.Init().<br>
<br>
        This functions is like this.<br>
<br>
        public static void Init ()<br>
        {<br>
        SetPrgname ();<br>
        IntPtr argv = new IntPtr(0);<br>
        int argc = 0;<br>
<br>
        gtk_init (ref argc, ref argv);<br>
<br></div>
        SynchronizationContext.__<u></u>SetSynchronizationContext (new<br>
        GLib.__<u></u>GLibSynchronizationContext ());}<div class="im"><br>
<br>
        Init will fail on SetPrgname (); when mono is embedded in an<br>
        application.<br>
<br>
        static void SetPrgname ()<br>
        {<br>
        GLib.Global.ProgramName =<br></div>
        System.IO.Path.__<u></u>GetFileNameWithoutExtension<br>
        (Environment.__<u></u>GetCommandLineArgs () [0]);<div class="im"><br>
        }<br>
<br>
        When embedding Mono, Environment.GetCommandLineArgs () will fail<br>
        because<br>
        it is not set to anything. When you run the same on mono as a<br>
        standalone<br>
        application it will work because mono will pass the command line<br></div>
        argument via Environment.__<u></u>GetCommandLineArgs().<div class="im"><br>
<br>
        I fixed it by registering the internal call for<br>
        Environment.GetCommandLineArgs to my own fucntion and return just a<br>
        dummy string.<br>
<br>
        My suggestion would be to do the same in mono when you embed it<br>
        or to<br>
        change SetPrgname  to not relay on<br>
        Environment.GetCommandLineArgs ().<br>
<br>
<br>
    Sahin, wouldn't this also fix your use case?<br>
<br></div>
    <a href="https://github.com/mono/gtk-__sharp/pull/90/files" target="_blank">https://github.com/mono/gtk-__<u></u>sharp/pull/90/files</a><br>
    <<a href="https://github.com/mono/gtk-sharp/pull/90/files" target="_blank">https://github.com/mono/gtk-<u></u>sharp/pull/90/files</a>><br>
<br>
<br>
    Thanks<br>
<br>
<br>
    ______________________________<u></u>___________________<br>
    Mono-devel-list mailing list<br>
    Mono-devel-list@lists.ximian._<u></u>_com<br>
    <mailto:<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.<u></u>ximian.com</a>><br>
    <a href="http://lists.ximian.com/__mailman/listinfo/mono-devel-__list" target="_blank">http://lists.ximian.com/__<u></u>mailman/listinfo/mono-devel-__<u></u>list</a><br>
    <<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/<u></u>mailman/listinfo/mono-devel-<u></u>list</a>><div class="im"><br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.<u></u>com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/<u></u>mailman/listinfo/mono-devel-<u></u>list</a><br>
<br>
</div></blockquote><div class="HOEnZb"><div class="h5">
<br>
<br>
______________________________<u></u>_________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.<u></u>com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/<u></u>mailman/listinfo/mono-devel-<u></u>list</a><br>
</div></div></blockquote></div><br></div>