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

Home » Public Forums » archive » Re: IDL and C-
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: IDL and C- [message #39475 is a reply to message #39413] Mon, 24 May 2004 11:51 Go to previous messageGo to previous message
MKatz843 is currently offline  MKatz843
Messages: 98
Registered: March 2002
Member
> .... I then tried the following code:
> image = ptr_new(bytarr(call_external("C:\Users\11ryan\CIDLFinal\testDLL\Debug\testDLL.dll ","testDLL")))
> window, xsize=640, ysize=480 ;--- open a window for display
> help, image
> tvscl, *image
>
> And the help, image says that it is a pointer, but when trying to
> display it i get an error saying TVSCL: Width and Height must be less
> than 32000. It looks as if it is trying to take the value and use it
> as a dimension instead. Any more advice on what I could try? ...

When you say
BYTARR(something) you're creating a new array of zeros with a size
given by "something." That's not what you wanted. You might want the
BYTE() function, but even that should be unnecessary. I have found
that in some cases, it's important to use a RETURN_TYPE keyword with
call_externals. You're talling the call_external what type of data is
being returned. Double check the list below with the IDL manual, but I
think it goes like this:

1 = Byte
2 = Integer
3 = Longword Integer
4 = Floating-point
5 = Double-precision floating
6 = Complex floating
7 = String
8 = Structure
9 = Double-precision complex
10 = Pointer
11 = Object reference
12 = Unsigned Integer
13 = Unsigned Longword Integer
14 = 64-bit Integer
15 = Unsigned 64-bit Integer

Your camera software will probably return Byte or Unsigned Integer
types (or a pointer to them). So in the Call_External, you'd add
RETURN_TYPE = 1, if appropriate.
image = ptr_new( call_external("...testDLL.dll","testDLL",
RETURN_TYPE=1 ) )

If that doesn't work, figure out exactly what types these data are
coming back as.

IDL> print, size( call_external("...testDLL.dll","testDLL") , /type)
See the SIZE() function for more information on this.
If it's returning a pointer, then don't do the RETURN_TYPE=1 above.

M. Katz
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Smoothing Data with optimal wiener filter
Next Topic: Re: will pay

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

Current Time: Sat Oct 11 08:18:00 PDT 2025

Total time taken to generate the page: 0.88211 seconds