dinosaurhxe 发表于 2013-6-4 08:55:10

加载LSP程序运行正常,而编译为VLX或fas运行则出错

    请教一下这个可能出现在的错误在哪里。一段程序加载lsp程序运行正常,而编译为vlx或fas后运行则出错,实在分析不出来错误的原因在哪里了。

错误:参数类型错误: stringp nil

已经定位到出错的位置(defun getdz (zhnbmc jdqwz dzh /)
(get dzh (read (get jdqwz (read (get zhnbmc gdzhnblst)))))
)可为什么直接加载.lsp文件时就能正常执行呢?这说明代码应该是没有问题的才对呀。

Gu_xl 发表于 2013-6-4 11:18:49

提示已经很清楚了啊!参数类型错误,参数应该是字串值,程序中参数为nil,当然出错了!

dinosaurhxe 发表于 2013-6-4 16:50:24

Gu_xl 发表于 2013-6-4 11:18 static/image/common/back.gif
提示已经很清楚了啊!参数类型错误,参数应该是字串值,程序中参数为nil,当然出错了!

同样的数据文件,加载LSP文件则运行正常,而VLX等则出现错误。应该不是参数的问题,如果是参数的问题,为什么加载LSP文件能正常执行呢?我曾把几个相关的参数都用type判断,结果都是STR,但打包成vlx后,还是出错了。

Gu_xl 发表于 2013-6-4 16:57:15

不要用独立方式编译再试试!

nzl1116 发表于 2013-6-4 17:07:05

dinosaurhxe 发表于 2013-6-4 16:50 static/image/common/back.gif
同样的数据文件,加载LSP文件则运行正常,而VLX等则出现错误。应该不是参数的问题,如果是参数的问题,为 ...

把get的定义发上来啊

dinosaurhxe 发表于 2013-7-18 16:36:22

本帖最后由 dinosaurhxe 于 2013-7-18 16:39 编辑

感谢各位在侠的指点,今天好像是找到了错误的原因,还在进一步的探索当中。
之所以加载LSP正常运行而VLX出错,是因为打包的时候多打进去一个文件,和一楼代码里的一些东西冲突了,导致问题出现错误:参数类型错误: stringp nil 这样的提示。算是个低级错误吧。
附get的定义(defun get (a b /)
(cdr (assoc a b))
)
页: [1]
查看完整版本: 加载LSP程序运行正常,而编译为VLX或fas运行则出错