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®  http://www.develop.com

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

Reply via email to