[Mono-list] Re: Method signature modification
Robert Jordan
robertj at gmx.net
Mon Oct 17 16:24:36 EDT 2005
Hi Shankari,
> [...] In fact I dont bother about how my C function
> prototype looks like as it can choose not to use any
> arguments passed to it.
It won't work on Win32, unless you switch to cdecl prototypes.
> My C# function does a Dll import like
> [DllImport(...)]
> static extern void func (param1, param2);
>
> Under normal cases, I would call func(param1,param2)
> from C#.
>
> But I want to set a flag during this. So, I thought of
> doing it like this.
>
> The C function implementation remains as it is. But
> Dll import is changed to
>
> [DllImport(...)]
> static extern void func (flag, param1, param2);
>
> C# invocation : func(flag,param1,param2)
Why so complicated?
Define the C DllImport to match its real parameter list:
[DllImport(...)]
static extern void func (param1, param2);
Then define a C# method that takes your additional flag:
public static void func (flag,param1,param2)
{
// do something with "flag"
...
// call the dll import
func (param1, param2);
}
Rob
More information about the Mono-list
mailing list