[Mono-devel-list] P/Invoke question
Julio David Quintana
jdq at jdqi.com
Sun Aug 22 19:25:26 EDT 2004
I think you better file the bug report as I'm sure you can explain it a
lot better. :)
Marcus wrote:
>No, Mono does not appear to marshal the data correctly when passing a
>reference to an array of strings. The C# signature should be
>
> private static extern int f(ref string[] data);
>
>if the C++ function is
>
> int f(char ***data);
>
>I did not realize that Mono didn't support this properly until you mentioned
>it because I was testing on Linux using Rotor (MS's "shared source" version
>of .NET).
>
>If you recall, I mentioned in a previous email that the CLI spec only
>addresses a limit set of data types that must be marshaled, and "ref
>string[]" is not one of them. Integer and floating point types, enums,
>strings, and pointers to them are required to be supported in both directions
>(managed -> unmanaged and unmanaged -> managed). Arrays and delegates are
>required to be supported in managed -> unmanaged, but not required to be
>suppoted from unmanaged -> managed. Obviously .NET goes beyond these
>requirements, but Mono does not implement this particular case.
>
>Although it isn't a bug per se, the Mono developers should probably be
>informed about this. You could file a bug report about this. Or I can if you
>would prefer.
>
>Marcus
>
>
>
More information about the Mono-devel-list
mailing list