现在混编是一个趋势,也越来越流行了。IDL与其他语言的混编的技术已经比较成熟,包括IDLDrawWidget或COM_IDL_Connect或输出助手等几种,在使用这些技术中要明确各自的优缺点以及适用的情形。
以IDLDrawWidget为例,对数组进行传递的方法有SetNamedArray和CopyNamedArray等。
在使用时注意下面的几句话(有点绕,难理解,正常,书稿中摘录,未包含前后语境):
这就导致了图片原本正确传递后显示花了,解决方法是用函数调整下,函数见:
FUNCTION CHANGEARRAYORDER, inArr
;
oDims = SIZE(inArr,/dimension)
oType = SIZE(inArr,/Type)
nDims = SIZE(inArr,/N_dim)
CASE nDims OF
1:result = inArr
2: BEGIN
result = REFORM(inArr, oDims[1],oDims[0])
END
3: BEGIN
result = REFORM(inArr,oDims[2],oDims[1],oDims[0])
END
ELSE: BEGIN
cmdStr = 'result= Reform(inArr'
FOR idx=nDims-1,0,-1 DO BEGIN
cmdStr += ',oDims['+STRTRIM(iDx)+']'
ENDFOR
void = EXECUTE(cmdStr+')')
END
ENDCASE
RETURN,result
END