assume type of af_err is int and type of size_t is long

> n *c *c *c *c :  void         deviceInfo(char *d_name, char *d_platform, char 
> *d_toolkit, char *d_compute) 
> i *c *c *c *c : af_err        af_device_info(char* d_name, char* d_platform, 
> char *d_toolkit, char* d_compute) 
> i *i : af_err         af_get_device_count(    int *   num_of_devices  ) 
> i n : AFAPI int       getDeviceCount() 
> i n : AFAPI af_err    af_info() 
> i n : AFAPI af_err    af_init() 
> i i : af_err  af_sync(const int device) 
> i x : af_err  af_free_device(void *ptr) 
> i i : af_err  af_set_device(  const int       device  ) 
> i *i : af_err af_get_device(  int *   device  ) 
> i *i i :af_err        af_get_dbl_support (bool *available, const int device) 
> i *x *x *x *x :af_err         af_device_mem_info (size_t *alloc_bytes, size_t 
> *alloc_buffers, size_t *lock_bytes, size_t *lock_buffers) 
> i n :af_err   af_device_gc () 

thus try,
'lib af_get_device_count > i *i'&cd <n=. ,_1
if lib contains space
'"lib" af_get_device_count > i *i'&cd <n=. ,_1

Пн, 21 сен 2015, jprogramming написал(а):
> its a 64bit dll, posting code I have so far (though doesn't work)
> 
> require 'dll' 
> pD_z_ =: 1!:2&2 
> cocurrent 'af' 
> pD 'Arrayfire libpath set to: ' ;libAFpath =: IFWIN pick '';'D:\Program 
> Files\ArrayFire\v3\lib' 
> libAFmainlib =: libAFpath , (IFIOS + (;: 'Win Linux Android Darwin') i. 
> <UNAME_z_) pick '\afcpu.dll'; ('afcpu.so';'/system/lib/afcpu.so'),  (2 $ 
> <'/usr/lib/afcpu.dylib ') 
> libAF =: 1 : '(libAFmainlib , '' '' , m)&cd' 
> 
> 
> cdparse =: 4 : '(y) =: (y , '' '' , x) libAF label_. 1'&>/"1 
> cdparse DT =: dltb leaf ((':' {.@:cut [), {.@:('('&cut)@])&>/"1 ] 2 {."1 
> (9{a.) cut every cutLF 0 : 0 
> n *c *c *c *c :  void         deviceInfo(char *d_name, char *d_platform, char 
> *d_toolkit, char *d_compute) 
> n *c *c *c *c : af_err        af_device_info(char* d_name, char* d_platform, 
> char *d_toolkit, char* d_compute) 
> i i : af_err  af_get_device_count(    int *   num_of_devices  ) 
> i n : AFAPI int       getDeviceCount() 
> i n : AFAPI af_err    af_info() 
> i n : AFAPI af_err    af_init() 
> i i : af_err  af_sync(const int device) 
> i *i : af_err af_free_device(void *ptr) 
> i i : af_err  af_set_device(  const int       device  ) 
> i *i : af_err af_get_device(  int *   device  ) 
> i *i i :af_err        af_get_dbl_support (bool *available, const int device) 
> i *i *i *i *i :af_err         af_device_mem_info (size_t *alloc_bytes, size_t 
> *alloc_buffers, size_t *lock_bytes, size_t *lock_buffers) 
> i n :af_err   af_device_gc () 
> ) 
> cocurrent 'z' 
> cders_z_ =: cder ; cderx
> 
> creates
> 
> af_get_device_count_af_  NB. 3rd line in multiline noun
> 'D:\Program Files\ArrayFire\v3\lib\afcpu.dll af_get_device_count i *i'&cd 
> 
> 
> perhaps relevant af_err (return value) is an enum
> 
> n =. 0
> af_get_device_count_af_ n
> |domain error: cd 
> cders '' 
> ┌───┬─┬───────────────────────────────────────┐ 
> │5 0│0│The operation completed successfully.  │ 
> └───┴─┴───────────────────────────────────────┘
> 
> Does 5 0 on cder mean the return value signature is invalid or the first 
> parameter?
> 
> I've fiddled with signature, but always get 5 0 error.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

-- 
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to