lyb_dsa 发表于 2003-12-24 09:55:00

为什么程序编译出错?

; (COMPILE-FILES lsa (E:/pipi/datum/old/LSP/kl/klbatchPrint.lsp))

.........

;;DCL
;;C:KLBATCHPRINT
;;ADDFILE
;;RESTOREDATA
;;PFILE
; warning:        cannot LINK dos_progbar
;                    The function is undefined
;;REMOVEFILE
;;*ERROR*
;
;


; Compilation complete.

以上是对自编的一个小程序编译的结果,其中函数PFILE引用了DOSLIB2K.ARX中的dos_progbar.。用LSP源文件运行已OK,但是一编译就出错。我先装载DOSLIB2K.ARX,编译也会出错。
请版主指点。

meflying 发表于 2003-12-24 10:03:00

试试在程序中写上加载arx的语句

BDYCAD 发表于 2003-12-24 11:48:00

可能是你的程序太雜了或者程序內有錯誤呢.所以出這樣的現象呀.

lyb_dsa 发表于 2003-12-24 12:33:00

该段程序如下,请帮忙查看
;;;---------------------------------------------------------
;;; print file                                             
;;;---------------------------------------------------------

(defun pFile (/ i WW cadobj version)
(setq i 0)
(cond
       ((= (getvar "acadver") "15.06")
          (setq version "doslib2k.arx")
       )
       ((= (getvar "acadver") "16.0s (LMS Tech)")
          (setq version "doslib2004.arx")
       )
) ;_ end of cond
(if        (findfile version)
       (arxload version)
       (progn
                (princ (strcat "\n找不到文件" version))
                (exit)
       ) ;_ end of progn
) ;_ end of if
(setq cadobj (vlax-create-object "AUTOCAD.Application"))
(dos_progbar
       "正在打印, 请等待..."
       (vl-list-length filename)
) ;_ end of dos_progbar
(while        (< i (vl-list-length filename))
       (setq WW (vla-open (vla-get-documents cadobj)
                                                          (nth i filename)
                               ) ;_ end of vla-open
       ) ;_ end of setq
       (vla-SendCommand WW "(load \"klPrint\")\n")
       (vla-SendCommand WW "klPrint\n")
       (vla-sendcommand WW "qsave\n")
       (vla-SendCommand WW "close\n")
       (dos_progbar -1)
       (setq i (+ i 1))
) ;_ end of while
(dos_progbar)
(vla-quit cadobj)
(arxunload version)
) ;_ end of defun

meflying 发表于 2003-12-24 13:54:00

我这里编译正常,没有出现错误
你的cadobj最好这样吧(setq cadobj (vlax-get-acad-object))
你那样就得到一个新的acad进程,因为当前也是acad进程,所以没有必要启动一个新的,最后又关闭它。。。

BDYCAD 发表于 2003-12-24 13:57:00

這處理時沒有問題

; Make MAKEAFAS; Date: 12/24/03; Time:1:53 PM;
; Make single module
; Make with SAFE optimize: nil
; Make message level: 1


;;; CREATING PDB...

.

;;; COMPILING source files...

;;PFILE
"F:/BDY/PROGRAM/BDYLISP/MAKEAFAS.ob"


; Make complete.

呆呆 发表于 2003-12-24 15:34:00

我学习LISP一段时间了 还没有接触到 VLISP请问怎么样把lLSP该成FAS文件

呆呆 发表于 2003-12-24 15:42:00

还有 我们老板每次给我加载程序的时候都非常快的 他不给我们看程序的源代码 我想请问怎么样才能在他加载的时候一并把他的程序偷偷的另存到另外一个地方 现在知道他的程序路径
主要的是不能让他看出来 我在拷贝他的程序(我的意思是 万一在他拔下移动盘的时候,出现“此文件正在使用”之类的话 那我就惨了 工作就没有了 呵呵)请问能不能用一小程序来实现他
我真的很现在不能用200X画图 还用R14没有劲!! 但是在200X里一个窗口可一大开很多图 加载一次还不行,所以只能用R14 请为帮帮忙!!!

lyb_dsa 发表于 2003-12-24 16:41:00

谢谢版主,是我自己搞错了。如果编译的信息中出现*ERROR*,就说明程序有问题。是这样吧!

呆呆 发表于 2003-12-25 16:47:00

怎么没有人解决8楼的问题
页: [1] 2
查看完整版本: 为什么程序编译出错?