<div dir="ltr">You're looking at the wrong implementation of Environment.cs. The one we're using is still Mono's implementation (as opposed to the MS referencesource one you're looking at): <a href="https://github.com/mono/mono/blob/37bb54b503f3f8c948955c577687d4233e950cb5/mcs/class/corlib/System/Environment.cs#L472">https://github.com/mono/mono/blob/37bb54b503f3f8c948955c577687d4233e950cb5/mcs/class/corlib/System/Environment.cs#L472</a><div><br></div><div>It ends up calling into the runtime to <a href="https://github.com/mono/mono/blob/37bb54b503f3f8c948955c577687d4233e950cb5/mono/metadata/icall.c#L6942-L6949">https://github.com/mono/mono/blob/37bb54b503f3f8c948955c577687d4233e950cb5/mono/metadata/icall.c#L6942-L6949</a>.</div><div><br></div><div>Anyway, this shouldn't matter as you're not supposed to add an icall for that yourself, it's provided by Mono. From a quick reading of the code there's no way this can return null so I'm a bit confused, but I'll let the runtime experts weigh in :)</div><div><br></div><div>- Alex</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-06-08 21:26 GMT+02:00 nicob <span dir="ltr"><<a href="mailto:nicolasbotto@gmail.com" target="_blank">nicolasbotto@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi, I'm trying to use the Skype Sdk in mono embedded. I'm able to load the<br>
assemblies but when I try to create a instance of a class that internally<br>
calls System.Environment.GetCommandLineArgs it throws an exception. After<br>
digging a bit I found out the System.Environment.GetCommandLineArgs<br>
internally invokes:<br>
<br>
private static extern string[] GetCommandLineArgsNative();<br>
<br>
this method is returning null therefore it fails. I'm trying to add an<br>
internal call to the extern method using:<br>
<br>
mono_add_internal_call ("System.Environment::GetCommandLineArgsNative",<br>
(void*)GetCommandLine);<br>
<br>
I also tried:<br>
<br>
mono_add_internal_call<br>
("mscorlib.System.Environment::GetCommandLineArgsNative",<br>
(void*)GetCommandLine);<br>
<br>
but neither of them seem to work as my C++ function is never invoked.<br>
<br>
C++ function:<br>
MonoArray* GetCommandLine()<br>
{<br>
    MonoDomain* domain = mono_domain_get();<br>
    MonoArray* array = mono_array_new(domain, mono_get_string_class(), 1);<br>
<br>
    MonoString* ret = mono_string_new(domain, "yeah!");<br>
    mono_array_setref(array, 0, ret);<br>
<br>
    return array;<br>
}<br>
<br>
<br>
Am I missing something?<br>
<br>
Thanks in advanced.<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://mono.1490590.n4.nabble.com/mono-add-internal-call-to-mscorlib-method-tp4667951.html" rel="noreferrer" target="_blank">http://mono.1490590.n4.nabble.com/mono-add-internal-call-to-mscorlib-method-tp4667951.html</a><br>
Sent from the Mono - Dev mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" rel="noreferrer" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</blockquote></div><br></div>