[Mono-devel-list] Problem with P/Invoke
Jonathan Pryor
jonpryor at vt.edu
Sun Feb 1 11:58:02 EST 2004
Below...
On Sun, 2004-02-01 at 10:07, Martin Baulig wrote:
> On Sat, 2004-01-31 at 23:27, Jonathan Pryor wrote:
> > Thus, your DllImport should be:
> >
> > [DllImport ("libc.so")]
> > private static extern IntPtr strncpy (StringBuilder dest,
> > string src, uint len);
> >
> > Now, the bad news begins. When I try this under Mono 0.29, the code
> > doesn't work correctly. Nothing appears to be copied.
>
> You forgot a more serious issue:
>
> The first argument or strncpy is a `char *' and you can't just overwrite
> the managed `StringBuilder' instance.
The runtime is supposed to handle this transparently, so that
StringBuilder can be used with fixed-with buffers.
See (beware line wraps):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondefaultmarshalingforstrings.asp?frame=true&hidetoc=true
- Jon
More information about the Mono-devel-list
mailing list