COM Interop and Pointer to Array

M

Mike

A function in a COM DLL I use takes a pointer to the first element in
an array of short integers.

Foo(short* array)

COM interop provides this function to me in the .NET world by making
the parameter “ref short”.

Foo(ref short array)

It seems like no matter what I try, the COM DLL only sees the first
element in the array. Is there a way to get it to see the entire array
of values? Maybe some sort of marshalling I haven’t tried yet?

Thanks,
Mike
 
P

PvdG42

A function in a COM DLL I use takes a pointer to the first element in
an array of short integers.

Foo(short* array)

COM interop provides this function to me in the .NET world by making
the parameter “ref short”.

Foo(ref short array)

It seems like no matter what I try, the COM DLL only sees the first
element in the array. Is there a way to get it to see the entire array
of values? Maybe some sort of marshalling I haven’t tried yet?

Thanks,
Mike


Assuming you are using C#, what happens happens if you change the parameter
type to Foo(ref short[] array)?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top