[Mono-list] PInvoke Conventions

Bob Salita bsalita@hotmail.com
Wed, 18 Jul 2001 11:39:20 -0500

>[DllImport("libc")] int system(string command);
>How does this work on machines in which the "C" definition of "int" is 64

Oh dear, I was hoping you were the maven with the answer.

In an earlier post, I gave 13 possible approaches to solving the problem. 
Though some required action by ECMA.

First step is to become acquainted with the scope of the problem. Perhaps 
look at the ANSI standard and ferret out all the troublesome cases.

Rhys previously posted the struct problem example, which poisons many 
seemingly good solutions. Hmmm, but wait, a struct is so C compiler specific 
that there can be no hope of a generalized C#-to-C-struct mapping. Several 
32/32 compilers on the same system can map a struct totally differently. 
Thus I'm concluding that there is no way to reliably handle structs.

Perhaps our obligation is to merely define a generalized handling of data 
types. IMHO, the simplest thing to do is - do nothing. Thus nearly forcing 
the implementation of a class wrapper for each library. Something that Rhys 
wished to avoid at the top of this thread.

Get your FREE download of MSN Explorer at http://explorer.msn.com