找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5720|回复: 5

[求助] 关于使用VLIDE编辑器编译VLX的问题

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-5-28 08:44:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×



我用VLIDE准备把一些函数封装VLX,可是为什么运行的时候,提示我好多函数不存在?好像让我IMPORT什么的,请问,我该如何做? 能让VLX里面的程序识别外面的函数并能用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-5-28 09:54:17 | 显示全部楼层
j建立应用程序教程


下载地址:晓东文库


评分

参与人数 2D豆 +10 收起 理由
牢固 + 5 很给力!经验;技术要点;资料分享奖!
Lisphk + 5 指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-28 10:03:00 | 显示全部楼层
编译的时候注意顺序,公用函数放在最前面,程序中如果调用其它程序,被调用的也要放在调用程序的前面,否则就会出现未定义函数,这个打包和 Lisp 语句一样,按顺序的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-28 10:13:28 | 显示全部楼层
一般来说只有编译模式为独立应用程序时才会出现你所说的的状况!
要用到vl-doc-import 、vl-doc-export 、vl-arx-import函数。

(vl-doc-import application [’function...])

该函数可以在独立名称空间 VLX 中使用,用于输入早先从同一文档加载的其他 VLX 中输出的函数。

应在文件的顶层表达式位置使用 vl-doc-export 函数,而不能在其他位置(如,defun 内)调用该函数。

参数

application

字符串,指定要输入函数所在的 VLX 应用程序。在名称中不要包含 .vlx 扩展名。

function

一个或多个符号,指定要输入的函数。如果未指定函数,则所有被 application 输出的函数都将被输入。

返回值

未确定。

示例

从 ldatatest 应用程序输入 ldataget:

(vl-doc-import "ldatatest" 'ldataget)
nil
(vl-doc-export ’function)

从运行在独立名称空间的 VLX 执行 vl-doc-export 函数,可将指定函数输出给任何加载 VLX 的文档名称空间。

应在文件的顶层表达式位置使用 vl-doc-export 函数,而不能在其他位置(如,defun 内)调用该函数。

参数

’function

符号,命名要显露的函数。

返回值

未确定。

示例

下面的代码显示文件 kertrats.lsp 的内容。该文件编译为在独立名称空间中运行的 VLX。VLX 文件的名称为 kertrats.vlx。调用 vl-doc-export 使得任何加载 kertrats.vlx 的文档都能见到 kertrats 函数:

(vl-doc-export 'kertrats)
(defun kertrats ()
  (princ "This function goes nowhere")
)

(vl-arx-import [’function | "application"])

将 ObjectARX/ADSRX 函数输入到独立名称空间 VLX

缺省情况下,独立名称空间 VLX 应用程序不从 ObjectARX/ADSRX 应用程序输入任何函数。使用 vl-arx-import 可以从 ObjectARX/ADSRX 应用程序中显式输入函数。

参数

function

符号,命名要输入的函数。

application

字符串,命名函数要输入到的应用程序。

如果没有指定参数(或参数为 nil),vl-arx-import 从当前的文档名称空间输入所有函数名称。

返回值

未确定。

如果从文档 VLX 执行,则该函数不做任何操作并返回 nil,而所有 ADS-DEFUN 函数名将自动输入到文档 VLX 应用程序中。

示例

执行以下操作,观察 vl-arx-import 如何工作:

将下列代码复制到 VLISP 编辑器,并保存文件:
(vl-doc-export 'testarx)
(defun testarx ()
   (princ "This function tests an ObjectARX application ")
   (vl-arx-import 'c:cal)
   (c:cal)
)
使用“生成应用程序”将该代码编译为 VLX。选择“独立名称空间应用程序”选项。
加载 geomcal.arx(如果尚未加载)。
加载并运行应用程序。
要验证 vl-arx-import 的效果,可以注释掉代码中的 vl-arx-import 调用,保存修改,然后在此生成并运行应用程序。没有了 vl-arx-import 调用,将找不到 c:cal 函数。

在上面的样例中,可以用下列代码取代 vl-arx-import 调用:

(vl-arx-import "geomcal.arx")
这样将输入 geomcal.arx 中定义的所有函数,包括 c:cal 在内。

评分

参与人数 2D豆 +10 收起 理由
牢固 + 5 技术引导讨论和指点奖!
Lisphk + 5 指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2013-5-28 10:31:17 | 显示全部楼层
处处问题鸟 发表于 2013-5-28 10:13
一般来说只有编译模式为独立应用程序时才会出现你所说的的状况!
要用到vl-doc-import 、vl-doc-export 、 ...

谢谢楼上各位,G版,比如我要调用 express tools 的API,XDRX_API,DOS_LIB等的API,我要把他们的所有函数名 都要 import 进来吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-28 10:42:46 | 显示全部楼层
Lisphk 发表于 2013-5-28 10:31
谢谢楼上各位,G版,比如我要调用 express tools 的API,XDRX_API,DOS_LIB等的API,我要把他们的所有函 ...

如果你愿意,当然可以引入所有函数!
(vl-arx-import “DosLib16.0.arx”) 不带函数名称,就将“DosLib16.0.arx”全部函数引入到独立名称应用程序中去了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-25 14:26 , Processed in 0.285919 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表