comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Passing > 64Kb arrays to IDL DLL's
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Passing > 64Kb arrays to IDL DLL's [message #4088] Mon, 24 April 1995 00:00 Go to next message
smd is currently offline  smd
Messages: 4
Registered: April 1995
Junior Member
Hi,


I use IDL v 3.6.1a on a PC. I would like to find out if one can
pass arrays larger than 64Kbytes to DLL functions using
CALL_EXTERNAL. I have been trying to pass long arrays of
size > 16384 elements, which means greater than 64K bytes;
so far I haven't been successful. FYI I have used huge
pointers to access the array elements.

I know I can do my operations within IDL itself, but I may
speed up my total execution time, if I perform some of the
processing in C. Most of it involves FOR loops over images.
If anybody has experience with writing DLL's for IDL,
please advise me.

Thanks

Sandeep Dalal

------------------------------------------------------------
Philips Laboratories
345, Scarborough Road,
Briarcliff Manor, NY 10510

Email: smd@philabs.philips.com
------------------------------------------------------------
Re: Passing > 64Kb arrays to IDL DLL's [message #4124 is a reply to message #4088] Tue, 02 May 1995 00:00 Go to previous message
Gary Kushner is currently offline  Gary Kushner
Messages: 5
Registered: December 1994
Junior Member
Karl Krieger <kak@ipp-garching.mpg.de> wrote:
>
> smd@philabs.philips.com (Sandeep Dalal) wrote:
>
>> I use IDL v 3.6.1a on a PC. I would like to find out if one can
>> pass arrays larger than 64Kbytes to DLL functions using
>> CALL_EXTERNAL. I have been trying to pass long arrays of
>> size > 16384 elements, which means greater than 64K bytes;
>> so far I haven't been successful. FYI I have used huge
>> pointers to access the array elements.
>> ...
>> Thanks
>>
>> Sandeep Dalal
>
> I still hope that I am wrong, but as far as I know, this is not
> possible, because IDL for Windoze3.1 only supports 16bit DLLs.
> That means that you are restricted to 64kb chunks for transferring
> data (or pointers to data) under Win3.1. Inside your DLL you can
> of course allocate larger arrays.
> Apparently, the only solution at the moment is waiting for an
> IDL version which supports 32bit DLLs using Win32s (or switching
> to WinNT). If someone has a better idea, please post it!
>
> Karl Krieger


As far as I know, Karl is correct; 64kb is all you can pass through
a windows 16bit DLL.

IDL sent me a note indicating that IDL 4.0 will run under Win32s
with 16 bit Windows. Thus you can recompile your DLL for win32
and the DLL should then be able to pass >64kb chunks of data to
IDL 4.0.

When I receive my copy of IDL 4.0, I will try this out with
some of my code and post an update if I have a chance. We are
also thinking of trying out Windows NT.


Gary Kushner
University of CO.
http://casa.colorado.edu/casa/kushner
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Planetary ephemeris library?
Next Topic: Possible crippling bug in NR_(SIMP,ROMB)

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:52:43 PDT 2025

Total time taken to generate the page: 0.00411 seconds