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

Home » Public Forums » archive » make_dll and call_external....
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: make_dll and call_external.... [message #42898 is a reply to message #42786] Wed, 02 March 2005 10:51 Go to previous message
Marc Reinig is currently offline  Marc Reinig
Messages: 30
Registered: June 2004
Member
I prefer making a DLM. Then life seems simpler, at least to me. However:

> 'cl' n'est pas reconnu en tant que commande interne

> ou externe, un programme ex‚cutable ou un fichier de commandes.

' cl' is not recognized as an internal or external command, a program,
executable or a command file.
So your first problem is that cl didn't get executed. You probably need to
specify the entire path or have it on your path.

Having no file generated by "make_dll" led to your other problems

Marco
________________________
Marc Reinig
UCO/Lick Observatory
Laboratory for Adaptive Optics

"Fabrice Monti" <fabrice.monti@espci.fr> wrote in message
news:ba06b53f.0502240449.2b8cd0f9@posting.google.com...
> in a recent post, i tried to remote a CCD by "mil.h" library and a
> call_external procedure.... Rick and Mark tried to help me, but i
> haven't a good background to do this... Today I read "the external
> development guide" and a tutorial about this subject... and i always
> have a probleme....
> step by step, i wrote a C code. and i would like to call with IDL.
> this code is binarize a image... it very simple for the moment, i will
> see the next later...
>
> my C code is : (name is binarize_call.c)
>
> # include <stdio.h>
> # include "export.h"
>
> uchar binarize (int argc, char *argv)
> {
> UCHAR *data,*data_tmp,t,new_t;
> IDL_LONG64 s0,s1;
> IDL_LONG n,i,n0,n1;
>
> data=(uchar *) argv[0];
> n=*(IDL_long *) argv[1];
>
> s0=0;data_tmp=data;
> for (i=n;i--;) s0+=(*data_tmp++);
> new_t=s0/n;
> do {
> t=new_t;
> n0=n1=0;s0=s1=0;
> for(i=n,data_tmp=data;i--;data_tmp++)
> if ((*data_tmp) < t) {n0++;s0+=(*data_tmp);}
> else {n1++;s1+=(*data_tmp);}
> new_t=(n1*s0+n0*s1)/(2*n0*n1);
> } while (t != new_t);
>
> for(data_tmp=data,i=n;i--;data_tmp++)
> *data_tmp = *data_tmp > t;
> return t;
> }
>
> my IDL code is:
>
> pro test_call
> make_dll, "binarize_call", "binarize", compile_directory= ".",
> dll_path=dll
> image= read_image(filepath("mr_abdomen.dcm",
> subdirectory=["examples","data"]))
> window, 0, xs=512, ys=256
> tv, image,0
> res= call_external (dll, "binarize", image, n_elements(image),
> /b_value,/unload, /cdecl)
> help, result
> tvscl, image,1
> end
>
> and the output is:
>
> 'cl' n'est pas reconnu en tant que commande interne
> ou externe, un programme ex&#8218;cutable ou un fichier de commandes.
> cl -D_DLL -DWIN32 -D_MT /nologo /I"C:\Program
> Files\RSI\IDL60\external\include" /c "C:\Program
> Files\RSI\IDL60\binarize_call.c"
> /Fo"binarize_call_1260_ANALIMAGES.obj"
> Impossible de trouver C:\Program
> Files\RSI\IDL60\binarize_call_1260_ANALIMAGES.exp
> Impossible de trouver C:\Program
> Files\RSI\IDL60\binarize_call_1260_ANALIMAGES.lib
> Impossible de trouver C:\Program
> Files\RSI\IDL60\binarize_call_1260_ANALIMAGES.obj
> % CALL_EXTERNAL: Error loading sharable executable.
> Symbol: binarize, File = .\binarize_call.dll
> ERROR_MOD_NOT_FOUND
> % Execution halted at: $MAIN$ 12 C:\Program
> Files\RSI\fabrice\test_call.pro
>
> My complier is a freeware "microsoft visual C++ toolkit".(MVC++)
>
> in the output, IDL search the 'CL'. This file is include in the MVC++
> folder, but i don't where is the setting path to permit IDL to found
> this file. I tried to save the path in a general setting but it
> doesn't work....
>
> the !Make_dll setting is:
> compile_directory : C:\Documents and
> Settings\montif\.idl\idl_6_0_Win32_x86_m32_f64\compile_dir
> complie_name : Microsoft Visual C++ 7.0
> CC : cl %X -D_DLL -DWIN32 -D_MT /nologo /I"C:\Program
> Files\RSI\IDL60\external\include" /c %C /Fo%O
> LD :link /out:%L /nologo /nodefaultlib /dll %O /def:%E "C:\Program
> Files\RSI\IDL60\bin\bin.x86\idl32.lib" msvcrt.lib kernel32.lib %X
>
> I hope that somebody will be able to help me..
> thanks
[Message index]
 
Read Message
Read Message
Previous Topic: Speed problem
Next Topic: Re: Slow Around Here

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

Current Time: Tue Apr 28 06:22:13 PDT 2026

Total time taken to generate the page: 2.15567 seconds