I actually tried the ref and alloc route, but that didn't work.

Good to know that out goes with **.  I'll switch back to using ref and
allocing the struct while I continue to look for the source of the problem.

Any other thoughts?

Thanks,
-Mont


On 4/24/07, Stoyan Damov <[EMAIL PROTECTED]> wrote:

>     void flxActCommonHandleGetError(FlxActHandle handle, FlxActError
*err);
>         private static extern void flxActCommonHandleGetError(handle,
out
> ActivationError error);

It could have been an out param if err was FlxActError** but since
it's not you probably have to allocate the structure and pass it by
reference like that:

private static extern void flxActCommonHandleGetError(IntPtr handle,
ref ActivationError error);

public ActivationError GetLastError()
{
    ActivationError error = new ActivationError();
    flxActCommonHandleGetError(Handle, ref error);
    return error;
}

Haven't tried it though.

On 4/25/07, Mont Rothstein <[EMAIL PROTECTED]> wrote:
> I am trying to get a struct from a function in a DLL, but I always get
zero.
>
> The below code always leaves the struct with 0 as the value for each
> parameter in the struct though the equivalent C code populates the
values.
>
> Does anyone see what I am missing?
>
> Thanks,
> -Mont
>
> Here is what I have:
>
> C definitions:
>
> typedef struct {
>     uint32_t    majorErrorNo;
>     uint32_t    minorErrorNo;
>     uint32_t    sysErrorNo;
> } FlxActError;
>
>     void flxActCommonHandleGetError(FlxActHandle handle, FlxActError
*err);
>
>
>     public struct ActivationError
>     {
>         public uint majorError;
>         public uint minorErrorNo;
>         public uint systemErrorNo;
>     }
>
>
> C# definition and function call:
>
>         [DllImport("mydll.dll", CharSet = CharSet.Ansi)]
>         private static extern void flxActCommonHandleGetError(handle,
out
> ActivationError error);
>
>         public ActivationError GetLastError()
>         {
>             ActivationError error;
>
>             flxActCommonHandleGetError(Handle, out error);
>
>             return error;
>         }
>
> ===================================
> This list is hosted by DevelopMentor(r)  http://www.develop.com
>
> View archives and manage your subscription(s) at
http://discuss.develop.com
>


--

Cheers,
Stoyan

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com


===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to