carrot1983 发表于 2013-7-31 20:37:54

OPENDCL编译成VLX运行出错

直接用LSP文件加载,或者用FAS加载,都没问题,就是编译成VLX后,运行就出错。
原因似乎在VLX独立命名空间里面无法识别ODCL的函数,
尝试过用vl-arx-import 和 vl-doc-export来解决,水平有限,没成功。
请了解的人出手帮助指点一二。


Gu_xl 发表于 2013-8-2 15:46:27


独立名称空间

为了加载和说独立名称空间的.vlx 中的对话框,你必须将在 OpenDCL 运行时定义的变量输入到你的应用程序的名称空间。 OpenDCL 为每个控件和窗体创建一个全局的指针或变量。这些变量在对话框关闭时立即被消毁。当 OpenDCL 在文档名称空间中创建它的全局变量时,你必须使用 vl-doc-ref 函数将该值输入到你的应用程序名称空间中。
简单的示例如下。
; 调用函数来确认合适的 OpenDCL.arx 文件加载(or LoadRunTime (load "_OpenDclUtils.lsp") (exit)) (LoadRunTime)
; 输入 OpenDCL ObjectARX 函数到独立名称空间 (vl-arx-import "OpenDCL.17.arx") ; 或可能是 OpenDCL.16.arx 版本
(defun c:vlx () (dcl_Project_Load "Test" T) (dcl_Form_Show Test_Form1) ); end defun
(defun c:Test_TextButton1_OnClicked () (dcl_Control_SetCaption (vl-doc-ref 'Test_Form1_Label2) "独立名称空间函数") );end defun
注意符号名称做为上面 vl-doc-ref 函数的一部分被引用。每一窗体或控件名称必须通过使用 vl-doc-ref 函数来访问。

carrot1983 发表于 2013-8-2 22:53:01

Gu_xl 发表于 2013-8-2 15:46 static/image/common/back.gif
为了加载和说独立名称空间的.vlx 中的对话框,你必须将在 OpenDCL 运行时定义的变量输入到你的应用程序 ...

谢谢Gu版,看样子要实现挺罗索的。。。
页: [1]
查看完整版本: OPENDCL编译成VLX运行出错