who wrote: Public Overridable Function ReadFFT(ByRef pArray As Integer, ByVal wCount As Short) As Short
? On 4 January 2011 08:44, Jeff Steinkamp (N7YG) <[email protected]>wrote: > Nope. Tried that and others to get the address of the array and I ether > get, “This applications has quite working” without anything bubbling up > though the debugger, or and error that says we are trying to address > protected memory. > > Jeff K. Steinkamp N7YG > Tucson, AZ > SCUD Missile Coordinates: > N032-13-55.02 W110-55-52.79 > Registered Linux User: 420428 > ------------------------------------------------------ > > Give thanks to the Lord, for he is good! > > *From:* Arsalan Tamiz <[email protected]> > *Sent:* Monday, January 03, 2011 23:42 > *To:* [email protected] > *Subject:* Re: [DotNetDevelopment] Marshel array of integers to C++ > ActiveX method > > Reading the parameter name which is pArray, it seems that the whole array > should be passed. > > Have you tried passing the address of array? Maybe the declaration of API > method is also NOT valid. > > Anyways to get the address of a variable, you case > System.Runtime.InteropServices namespace and can use GCHandle class. > > Example: > > Dim a() As Integer = {5, 6, 4, 10} > Dim gh As GCHandle = System.Runtime.InteropServices.GCHandle.Alloc(a, > GCHandleType.Pinned) > Dim i As IntPtr = gh.AddrOfPinnedObject() > Debug.Print(i.ToInt32()) ' <--- getting address of array > gh.Free() > > > On Mon, Jan 3, 2011 at 5:52 PM, Jeff Steinkamp (N7YG) < > [email protected]> wrote: > >> The reference to parray is an array of 2048 integers that represents >> FFT data. I’m trying to get those from the ActiveX control into my program >> so I can manipulate them for further processing >> >> Jeff K. Steinkamp N7YG >> Tucson, AZ >> SCUD Missile Coordinates: >> N032-13-55.02 W110-55-52.79 >> Registered Linux User: 420428 >> ------------------------------------------------------ >> >> Small white pigeons mysteriously appeared in people's clothing. >> >> *From:* Charles A. Lopez <[email protected]> >> *Sent:* Sunday, January 02, 2011 22:47 >> *To:* [email protected] >> *Subject:* Re: [DotNetDevelopment] Marshel array of integers to C++ >> ActiveX method >> >> What are you trying to do? >> >> On 1 January 2011 01:41, Jeff Steinkamp (N7YG) <[email protected]> wrote: >> >>> I have an ActiveX library that was built using C++ with the following >>> method: >>> � >>> Public Overridable Function ReadFFT(ByRef pArray As Integer, ByVal wCount >>> As Short) As Short >>> � >>> I can dissemble the Interop files created and the declaration is >>> ReadFFT(int32&, int16) >>> � >>> I assumed you could write the following and it would work: >>> � >>> dim ar(2047) as int32 >>> myActiveXLib.ReadFFT(ar(0),arr.length) >>> � >>> But the CLR croaks with some cryptic messages about MDR >>> � >>> � >>> How do you marshal this into the unmanaged ActiveX world? >>> � >>> � >>> Jeff K. Steinkamp N7YG >>> Tucson, AZ >>> SCUD Missile Coordinates: >>> N032-13-55.02 W110-55-52.79 >>> Registered Linux User: 420428 >>> ------------------------------------------------------ >>> >>> Orville Bullitt - Mouth is in gear, brain is in neutral. >>> >> >> >> >> -- >> Charles A. Lopez >> [email protected] >> >> >> >> >> > -- Charles A. Lopez [email protected] What's your vision for your organization? What's your biggest challenge? Let's talk. (IBM Partner)
